📅  最后修改于: 2023-12-03 15:23:22.176000             🧑  作者: Mango
在C/C++中,连接字符串是一项基本的操作,接下来我们将介绍几种连接字符串的方法。
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100] = "Hello ";
char str2[] = "world!";
strcat(str1, str2);
printf("连接后的字符串是 %s\n", str1);
return 0;
}
连接后的字符串是 Hello world!
strcat()
函数用于将源字符串连接到目标字符串后面。
需要注意的是,源字符串和目标字符串必须都是以 NULL 结尾的字符串。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[20] = "World";
char str2[10] = "Hello ";
sprintf(str2,"%s%s", str2, str1);
printf("%s\n", str2);
return 0;
}
Hello World
sprintf()
函数用于格式化输出到一个字符串中。
在这个例子中,我们将两个字符串拼接到一起,并使用了格式化输出的语法 %s%s
,其中第一个 %s
表示输出第一个字符串,第二个 %s
表示输出第二个字符串。
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100] = "Hello ";
char str2[] = "world!";
strncat(str1, str2, 6); // 拼接前6个字符
printf("连接后的字符串是 %s\n", str1);
return 0;
}
连接后的字符串是 Hello world
strncat()
函数用于将源字符串的前 n 个字符连接到目标字符串的后面。
需要注意的是,源字符串和目标字符串必须都是以 NULL 结尾的字符串。
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100] = "Hello ";
char str2[] = "world!";
strcpy(str1 + strlen(str1), str2);
printf("连接后的字符串是 %s\n", str1);
return 0;
}
连接后的字符串是 Hello world!
这种方法使用了 strcpy()
和 strlen()
函数来将第二个字符串拼接到第一个字符串的末尾。
需要注意的是,剪辑字符串时,第一次使用 strlen()
函数,将会返回第一个字符串的长度,然后我们将第二个字符串拼接到第一个字符串末尾,形成一个新的 NULL 结尾字符串。
#include <stdio.h>
int main()
{
char str1[100] = "Hello ";
char str2[] = "world!";
char *str_sum;
str_sum = str1;
while(*str1)
str1++;
while(*str1++ = *str2++)
;
printf("连接后的字符串是 %s\n", str_sum);
return 0;
}
连接后的字符串是 Hello world!
这种方法会将字符串指针指向第一个字符串,然后通过一个 while 循环来遍历第二个字符串,并将其拼接到第一个字符串末尾。
需要注意的是,在 C/C++ 中,字符串其实就是一个字符数组,字符数组名可以作为数组的地址,因此字符串指针其实就是一个字符数组的指针。
以上是几种连接字符串的方法,需要注意的是,源字符串和目标字符串都必须以 NULL 结尾,否则会引起程序的运行错误。同时,在进行字符串拼接时也需要注意字符串的长度是否会超出数组的长度,否则会造成数组越界的问题。