以下函数均包含在头文件<string.h>中,使用时需声明
1、puts与gets函数
作用:输出/输入 字符串
实现:puts(str1);
gets(str1);
//str1已定义
No.1区别putchar与getchar
putchar/getchar 用于字符串
puts/gets 用于单个字符
实现上:getchar作用于单个字符要前赋
word =getchar();
//word已定义
相同点:一次只能处理一个字符/字符串
(补充一点,scanf函数在指针中用时,输入的导向不能是无内存空间,即需指向值)在二维指针数组中值得注意
补充由于gets在读取时不判断界,所以不安全,在有些高级开发软件不支持,可以用其他方式代替
以上为补充
No.2区别于scanf/printf函数
printf函数与puts基本相同,但puts还会将字符串尾'\0'转化为'\n',而printf中%s后的对象可以是地址。
scanf函数相比puts具有局限性,scanf函数会将' '(空格)转化为'\0',所以字符串中有空格的不适用scanf输入。
补充:scanf("%[^\n]%*c",str);
可以解决这个问题,%[]等价于%s带条件^是非的意思\n为回车%*c为缓冲区存一个字符
2、strcat (字符串连接)
strcat(str1,str2);
作用:将str2中内容连在str1中(从 \0开始,包括\0)
实现:strcat(str1,str2);
*输出:I like study
注意str2位置也可以直接填字符串“study”
前提:str1足够大
3、strcpy与strncpy(字符串复制)
No.1 strcpy函数
特点:将'\0’前(包括‘\0’一起复制到对象中去)
一般多用于交换字符串内容(不可直接“=”)即使换后内容不一定与原来完全相同。但存在'\0'输出时只输出互换内容。
实现:strcpy(str1,str2);
No.2 strncpy 函数
n<字符串长度(不包括‘\0’)
[但包括\0'就会将'\0'也代入]那与strcpy无差别
实现:strncmp(str1,str2,n);
将str2 n个前的字符复制到str1中
*同样str2位置也可以直接填字符串
4、strcmp(字符串比较)
实现:strcmp(str1,str2)按ASCII比
返回值
注意:str1与str2的位置均可以直接填字符串
5、strlen(字符串长度)
实现 strlen(str1);
特点:不计算'\0',或说算到'\0'过
printf(“%d”,strlen(str1));
副录:strcat的实现(原理)