C语言字符串常用操作函数
1. 字符串输出 - puts
2. 字符串输入 - gets
3. 字符串比较 - strcmp
4. 字符串复制 - strcpy
5. 字符串连接 - strcat
6. 字符串求长 - strlen
一、puts 与 printf 的差别
1.puts不需要格式化控制符,printf需要
2.puts只能输出字符串,printf其他类型都可以输出
3.puts自带换行,printf没有自带换行
实现puts的功能,代码如下:
#include <string.h>
int main(int argc, const char * argv[]) {
char str[] = "abc";
puts(str);
return 0;
}
二、gets 与 scanf 的差别
1.gets只能输入字符串,scanf什么格式都能输入
2.gets不用加%s, scanf要加%s
实现gets的功能,代码如下:
#include <string.h>
int main(int argc, const char * argv[]) {
char str[50];
gets(str); //接收用户输入的字符数组
puts(str); //输出用户输入的字符数组
return 0;
}
注意:以上两个函数都是在头文件 #include <stdio.h>
以下库函数都需要另导入头文件才能访问 #include <string.h>
三、实现strcmp的功能
语法:strcmp(字符串1,字符串2);
比较两个字符串谁大谁小。比较字符串1是否比字符串2大,如果比字符串2大,返回正数,如果比字符串2小,返回负数,如果一样则返回0。
最主要的用法,是用来判断两个字符是否相等。
实例:
#include <string.h>
int main(int argc, const char * argv[]) {
char str1[] = "abc";
char str2[] = "acc";
printf("%d\n",strcmp(str1, str2) ); //返回值为 -1;
return 0;
}
四、实现strcpy的功能
语法:strcpy(字符数组,字符串2);
把字符串2的内容,复制到字符数组,如果字符数组里面原来就有内容,就会覆盖
注意:左边的那个只能传字符数组,不能传字符指针
把字符串2的内容,复制到字符数组,如果字符数组里面原来就有内容,就会覆盖
注意:左边的那个只能传字符数组,不能传字符指针
实例:
#include <string.h>
int main(int argc, const char * argv[]) {
char str[50] = "abc";
strcpy(str, "xyz");
puts(str); //输出的是 xyz
return 0;
}
五、实现strcat的功能
语法:strcat(字符数组,字符串2);
把字符串2的内容接道字符数组原实际的内容的后面
实例:
实例:
#include <string.h>
int main(int argc, const char * argv[]) {
char str[50] = "abc";
strcat(str, "xyz");
puts(str); //输出的是 abcxyz
return 0;
}
六、实现strlen的功能
语法:strlen(字符串);
计算实际字符长度的,'\0'不参与计算,注意:一个中文占3个字节,那么用它计算中文的话,会用中文的实际个数*3
原理是:计算实际字符串占用的字节数
实例:
计算实际字符长度的,'\0'不参与计算,注意:一个中文占3个字节,那么用它计算中文的话,会用中文的实际个数*3
原理是:计算实际字符串占用的字节数
实例:
#include <string.h>
int main(int argc, const char * argv[]) {
char str[50] = "哈哈";
unsigned long len = strlen(str);
printf("%lu\n",len); //输出的是 6
return 0;
}