C中的字符串连接
2021-07-07 08:42:38
深夜i
--
--
C
中
的
字
符
串
连
接
连接两个字符串的C程序; 例如,如果两个输入字符串是“C编程”和“语言”(注意语言前的空格),那么输出将是“C编程语言”。 连接字符串,我们使用“string.h”的strcat函数,在不使用库函数的情况下进行打点,参见下面的另一个程序。
C 连接字符串程序
#include <stdio.h>
#include <string.h>
int main()
{
char a[1000], b[1000];
printf("Enter the first string\n");
gets(a);
printf("Enter the second string\n");
gets(b);
strcat(a, b);
printf("String obtained on concatenation: %s\n", a);
return 0;
}
程序输出:
下载字符串连接程序。
连接没有 strcat 函数的字符串
不使用“string.h”头文件的库函数strcat来连接字符串的C程序。 我们创建我们的函数。
#include <stdio.h>
void concatenate(char [], char []);
int main()
{
char p[100], q[100];
printf("Input a string\n");
gets(p);
printf("Input a string to concatenate\n");
gets(q);
concatenate(p, q);
printf("String obtained on concatenation: \"%s\"\n", p);
return 0;
}
void concatenate(char p[], char q[]) {
int c, d;
c = 0;
while (p[c] != '\0') {
c++;
}
d = 0;
while (q[d] != '\0') {
p[c] = q[d];
d++;
c++;
}
p[c] = '\0';
}
concatenate 函数中的第一个 for 循环是计算字符串长度; 如果你愿意,你也可以使用 strlen 函数。
连接后访问字符串
要使用 strcat 连接两个字符串,我们将第二个附加到第一个。 如果我们需要进一步访问程序中的第一个怎么办?
让我们来看看如何做到这一点。
- 由于第一个字符串仍然是连接字符串的一部分,如果我们在连接之前存储它的长度,我们就可以访问它。 但是,它会增加代码大小。
- 在连接之前制作第一个字符串的副本。 这种方法使用了一些额外的内存,但很容易实现。
- 通过将第一个复制到其中创建一个新字符串,然后将其与第二个连接。
现在实现:
#include <stdio.h>
#include <string.h>
int main()
{
char firstName[1000], lastName[1000], fullName[2000];
printf("Enter your first name\n");
gets(firstName);
printf("Enter your last name\n");
gets(lastName);
strcpy(fullName, firstName);
strcat(fullName, " "); // Concatenating a space
strcat(fullName, lastName);
printf("Hello, %s\n", fullName);
return 0;
}
输出:
Enter your first name
John
Enter your last name
Doe
Hello, John Doe
使用指针的字符串连接
#include <stdio.h>
void concatenate_string(char*, char*);
int main()
{
char original[100], add[100];
printf("Enter source string\n");
gets(original);
printf("Enter string to concatenate\n");
gets(add);
concatenate_string(original, add);
printf("String after concatenation: \"%s\"\n", original);
return 0;
}
void concatenate_string(char *original, char *add)
{
while(*original)
original++;
while(*add)
{
*original = *add;
add++;
original++;
}
*original = '\0';
}
上一篇:
idea打包java可执行jar包
下一篇:
反转字符串的C程序
评论区