一个‘s’(英文) + 一个‘我’中文长度为3 , 结果如下:
3,strcpy原型:strcpy(a,b)->将b复制到a(注意:a的空间要比b的大 , 否则b的内容至于一部分复制到a中)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
system("color 1A");
char names1[] = {'A','o','n','a','u','f','l','y','\0'};
char names2[] = "sk";
strcpy(names1,names2);
printf("names1 value : %s\n" , names1);
for(int i = 0 , j = sizeof(names1)/sizeof(char) ; i < j ; i ++)
{
printf("%c\n",*(names1+i));
}
return 0;
}
运行结果如下:
4,strcmp 字符串比较 strcmp( a , b ) a>b返回正数 ; a == b 返回 0 ; a < b 返回负数。注:按ASCII进行比较
5,strcat 字符串链接 strcat( a , b) 将b复制到a的后面 , a的长度一定要大
6,gets 可以或造成越界 (如定义了长度为20 , 结果输入为21 ) gets(char *) 。代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
system("color 1A");
char names1[2];
gets(names1);
printf("names1 值 : %s\n" , names1);
printf("names1 长度 : %d\n" , strlen(names1));
for( int i = 0 , j = strlen(names1) ; i < j ; i++)
{
printf("names1 第%d个值为%c\n" , i + 1 , *(names1+i));
}
return 0;
}
运行结果如下:
7,puts 专门打印字符串 puts(char *) .它会自动在后面加一个\n
8 , fgets fgets(char * , len , stdin) 最多接收len-1个字符 。遗憾的是已\n结束,而不是以\0结束 。 比gets要安全。