栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学习C语言的第十五天:字符串处理函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习C语言的第十五天:字符串处理函数

字符串处理函数:

存放和使用字符串:

字符串常量:“fishc”,“小甲鱼”,“鱼C工作室”字符数组:

获取字符串长度:strlen
用法:

strlen(str)
注意:这个函数获得的是长度(不带’’),不是尺寸。头文件最好用%u(无符号十进制数)输出,因为输出的是长度,当然%d也行。
示例:

    1 #include
    2 #include
    3 int main()
    4 {
    5   char str[]="i love fishc.com!";
    6     printf("sozeof(str)= %dn",sizeof(str));
    7     printf("strlen(str)= %un",strlen(str));
    8                                                                              
    9   return 0;
   10 }

拷贝字符串:strcpy和strncpy
用法:

strncpy(目标字符串,待拷贝字符串);
注意:

不可以用变量来拷贝字符串

将长的字符串拷贝进入短的字符串中会溢出

C语言不会对数组的边界做检查,如果内存溢出也不会报错

示例:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="original string";
  6   char str2[]="new string";
  7   char str3[100];
  8 
  9   strcpy(str1,str2); 10   strcpy(str3,"copy sucessful");                                               
 11 
 12   printf("str1:%sn",str1);                            
 13   printf("str2:%sn",str2);
 14   printf("str3:%sn",str3);
 15                            
 16                            
 17                        
 18   return 0;            
 19 } 

strncpy:
用法:

strncpy(目标字符串,待拷贝字符串,拷贝字符串尺寸);

注意:

可定义拷贝进去的字符长度如果源字符串长度小于目标数组,会用’’来填充额外的空间如果大于,则会截取目标数组的字符串长度来替换,(并且不含’’,则需要在结尾加上’’)。

示例:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="to be or not to be";
  6   char str2[40];
  7 
  8   strncpy(str2,str1,5);
  9   str2[5]='';  //在结尾加上''                                                              
 10                                     
 11   printf("str2:%sn",str2);         
 12                                     
 13   return 0;                         
 14 }

连接字符串:strcat和strncat
用法:

strcat(一号字符串,二号字符串);//把二号加到一号后面

注意:

strncat和strncpy一样,是为了限定加上的字符个数不同的是,在连接之后自动追加结束符’’。

示例:
例一:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="to be or not to be";
  6   char str2[]="fishc.com!";
  7 
  8   strcat(str1," ");//在str1后面加上个空格,没什么作用,仅仅为了好看点          
  9   strcat(str1,str2);
 10 
 11   printf("str1:%sn",str1);
 12 
 13   return 0;
 14 }

例二:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="to be or not to be";
  6   char str2[]="fishc.com!";
  7 
  8   strncat(str1," ",2);//2用来限定所加的字符个数
  9   strncat(str1,str2,5);
 10   //不需要加''来表示结束,这个会自己加                                        
 11   printf("str1:%sn",str1);
 12 
 13   return 0;
 14 }

比较字符串:strcmp和ctrncmp
用法:

strcmp(str1,str2)

注意:

字符串相等的话会返回0
从返回值来剖析:
该函数的返回值如下:如果返回值小于 0,则表示 str1 小于 str2。如果返回值大于 0,则表示 str1 大于 str2。如果返回值等于 0,则表示 str1 等于 str2。

示例:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="fishc.com!";
  6   char str2[]="fishc.com!";
  7   8   if(!strcmp(str1,str2))//strcmp前面要加'非'(!),因为strcmp判断相等的话返回值为0
  9   {
 10     printf("两个字符串完全一致!n");
 11   }
 12   else
 13   {
 14     printf("两个字符串存在差异!n");
 15   }
 16 
 17   return 0;
 18 }

strncmp和strcmp和区别:

限制比较的长度,可在后面加上限制参数

示例:

  1 #include
  2 #include
  3 int main()
  4 {
  5   char str1[]="fishc.cfm!";
  6   char str2[]="fishc.com!";
  7 
  8   if(!strncmp(str1,str2,5))//strcmp前面要加'非'(!),因为syrcmp判断一致的话返回值    为0
  9   {
 10     printf("两个字符串完全一致!n");                                          
 11   }                
 12   else                                        
 13   {                  
 14     printf("两个字符串存在差异!n");
 15   }                                     
 16 
 17   return 0;                                                        
 18 } 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717015.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号