一些常用的string.h中的函数。

  1.  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;
}

输出结果可以自行调试.

 

  •  

猜你喜欢

转载自blog.csdn.net/qq_43702629/article/details/84439458