-
strlen()
- 作用:统计一个字符串的长度,不包括\0字符。
#include<stdio.h>
#include<string.h>
int main()
{
char *str = "Hello word";
char *str1 = "Hello\0";
printf("%d %d", strlen("Hello word"), strlen("Hello\0"));
getch();
return 0;
}
输出结果 10 5.
2. strcat()
作用:通常用于拼接字符串,函数接受2个字符串作为参数,并把第二个字符串接在第一个字符串后,并把第一个字符串作为拼接后的
第一个字符串。strcat返还第一个字符串的地址.
#include<stdio.h>
#include<string.h>
int main()
{
char *str = "Hello word";
char *str1 = "Hello\0";
char *str2 = strcat(str, str1);
printf("%s", str2);
getch();
return 0;
}
输出结果:错误或空白,因为拼接字符串要改变str的内容,而用指针形式定义字符串,存储的是字符串字面量是不可变化的const数据。
如果使用数组来存储字符串,那么可以改变字符串,不过应该注意为字符串留下足够的空间。
看下面的代码
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100] = { "hello" };
char *p = "word";
char *p1 = strcat(ch, p);
printf("%s %s", p1, ch);
getch();
return 0;
}
输出结果:helloword helloword .
当然,如果你的编译器出现错误,那么你可以使用strncat()函数,不过你需要在第二个字符串
末尾加上一个数字来保证你要拼接字符串的长度(但应该给末尾空字符在数组中留一个位置.)
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100] = { "hello" };
char *p = "word";
char *p1 = strncat(ch, p,4);//第一个测试,空间满足.
printf("%s %s", p1, ch);
char ch1[6] = { "heiio" };
char *p2 = "wordlllllllllllllll";
strncat(ch1, p2,10);//虽然编译可能成功,超出的字符可能到相邻的存储单元
printf("\n%s",ch1);
getch();
return 0;
}
输出结果可以自行调试.
扫描二维码关注公众号,回复:
6094094 查看本文章