C语言字符串和常用函数的探索

字符串的定义是什么?

字符串是以'\0'结尾的字符数组。字符数组的最后一个单元的值是'\0',就可以判断它是字符串。

char str[]={'c','h','i','n','a','\0'}最后一个字符时\0。等价于char *str="china";也等价于 char str[]="china";

也等价于char str[]={"china"};,它们显式或隐式的在最后一个单元添加了'\0',而且它们的字符元素个数都是6。字符数组的元素格式=字符串大小+1;

字符串操作常用函数

gets、scanf、puts、strlen、strcpy、strncpy、strcat这些函数必须牢牢掌握

gets和scanf比较

1、gets输入的字符可以包含空格,scanf不可以包含空格

2、gets只能输入一个字符串,scanf可以通过格式控制符输入多个字符串

3、gets不能限定字符串的长度,直到回车键为止,scanf可以通过“%ns”限定长度

4、gets遇到回车结束,scanf遇到空格或回车结束

strcpy、strncpy、memcpy的介绍和比价

strcpy和strncpy的共同点就是他们接受的第一个参数必须是字符数组变量,第二个参数可以是字符串常量。因为第一个参数是目标项,只有变量才可以被修改。

str1是字符数组变量,str2是字符串常量。
没有字符串变量这一说
void strtest(){
	char str1[]="china";
	str1[1]='1';
	char *str2="china";
	str2[1]='2';              //运行时报错
	printf("%s,%s",str1,str2);
}

memcpy可以实现任何类型的数组拷贝。

stricmp和strcmp

前者比较式不区分大小写,后者区分。

其它常用的字符串处理函数

strset 将一个串中的所有字符都设为指定字符

strlwr 将一个串中的所有字符转换成小写

strupr 将一个串中的所有字符转换成大写字符

atoi将字符串转化成整形

如果字符串中有非法字符,就会返回0

atol将字符串转换成长整形

atof将字符串转换成浮点型

如果字符串中有非法字符,就会返回0.000000

ultoa将无符号长整数转化成指定的进制数并以字符串的形式存放到字符数组中

strstr 查找主串中第一次出现子串的位置并从这个位置返回子串,如果没有则返回null。

如果小朋友们想返回主串中子串的起始位置,可以地址相减。

void strstrtest(){
   char haystack[20] = "RUNOOB";
   char needle[10] = "NOOB";
   char *ret;
   ret=strstr(haystack, needle);
   printf("子字符串是: %s\n", ret);
   printf("主串中子串的起始位置:%d\n",ret-haystack);
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值