c语言中,用了strcmp函数连接两个字符串数组a.b后,还需要手动加个'\0'吗

大神在线求帮请说下,c语言中,用了strcmp函数连接两个字符串数组a.b后,还需要手动加个'\0'吗
最新回答
瑾沫流年

2024-10-16 07:58:44

strcmp是连接两个字符串的函数吗?明显不是:
strcmp(比较字符串)
相关函数 bcmp,memcmp,strcasecmp,strncasecmp,strcoll
表头文件 #include<string.h>
定义函数 int strcmp(const char *s1,const char *s2);
函数说明 strcmp()用来比较参数s1和s2字符串。字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1第一个字符值减去s2第一个字符值,若差值为0则再继续比较下个字符,若差值不为0则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。
返回值 若参数s1和s2字符串相同则返回0。s1若大于s2则返回大于0的值。s1若小于s2则返回小于0 的值。
范例 #include<string.h>main(){char *a="aBcDeF";char *b="AbCdEf";char *c="aacdef";char *d="aBcDeF";printf("strcmp(a,b) : %d\n",strcmp(a,b));printf("strcmp(a,c) : %d\n",strcmp(a,c));printf("strcmp(a,d) : %d\n",strcmp(a,d));}
执行 strcmp(a,b) : 32strcmp(a,c) :-31strcmp(a,d) : 0
而strcat是连接两个字符串的函数:
strcat(连接两字符串)
相关函数 bcopy,memccpy,memcpy,strcpy,strncpy
表头文件 #include <string.h>
定义函数 char *strcat (char *dest,const char *src);
函数说明 strcat()会将参数src字符串拷贝到参数dest所指的字符串尾。第一个参数dest要有足够的空间来容纳要拷贝的字符串。
返回值 返回参数dest的字符串起始地址
范例 #include <string.h.>main(){char a[30]="string(1)";char b[]="string(2)";printf("before strcat() : %s\n",a);printf("after strcat() : %s\n",strcat(a,b));}
执行 before strcat () : string(1)after strcat () : string(1)string(2)
哥的名称亮瞎你的狗眼

2024-10-16 07:58:55

不用了
strcat把原字符串添加到目的字符串结尾处(覆盖dest结尾处的'\0')并添加'\0'。
病系少女

2024-10-16 07:59:29

strcat函数自动实现,不需要再手动加'\0'。
干凈没朋友

2024-10-16 07:59:56

如果用数组来表示字符串的话,要人为的加"\0"