惧留孙网

juliusun.com

在线教程 > C语言教程 > 常用字符串操作

常用字符串操作

第 33/50 节 冥河C语言教程


因为字符串是字符数组,我们可以像操作数组一样操作字符串。不过为了简单,系统预定义了很多常用字符串操作函数,一般这此函数在string.h中,部分是在stdio.h,使用时注意加上#include<string.h>。本节以介绍这些函数为主。本节要介绍的函数如下:

系统预定义的函数使用了CPU级别的优化,在符合需求的条件下,建议使用系统预定义函数。

字符串复制: char * strcpy(char * pdest,char *psrc) 字符串比较: int strcmp(char * s1,char * s2) 字符串求长度:unsigned int strlen(char * s) 字符串连接: char * strcat(char * pdest,char * psrc) 字符串变小写:char * strlwr(char * s) 字符串变大写:char * strupr(char * s)

char * strcpy(char * pdest,char *psrc):把字符串psrc复制到pdest指向的内容中,然后返回pdest。注意pdest指向的数组或内存块要有足够的空间容易psrc指向的字符串,否则可能导致程序运行错误。例:


  1. #include<stdio.h>
  2. #include<string.h> //使用strcpy需要引用这个头文件
  3. int main( )
  4. {
  5. char s1[ ] = "Hello World!" , s2[20]; //要将字符串s1复制到s2中,请保证s2内存块大小能容纳
  6. strcpy(s2,s1); //将字符串s1复制到s2中
  7. printf("s1:%s\ns2:%s\n",s1,s2); //输出两个字符串便于对照
  8. getchar( ) ; //使程序暂停一下
  9. return 0;
  10. }

效果类似如下图:


Pic


int strcmp(char * s1,char * s2):比较两个字符串,s1和s2两个字符串内容相同,返回0。s1指向内容大于s2时返回正数。s1指向的内容小于s2时返回负数。通常我们只关心两个字符串是不是相等。注意,必须字符串长度、大小写等完全相同才算相等。例:


  1. #include<stdio.h>
  2. #include<string.h> //使用strcmp需要引用这个头文件
  3. int main( )
  4. {
  5. char s1[ ] = "abc" , s2[]="abcd";
  6. char s3[ ] = "efgh" , s4[]="efgh";
  7. printf("字符串:%s 与 %s ",s1 , s2);
  8. if(0 == strcmp(s1,s2)) //通过strcmp返回值是否是0来判断两个字符串是否相同
  9. {
  10. puts("相同");
  11. }
  12. else
  13. {
  14. puts("不同");
  15. }
  16. printf("字符串:%s 与 %s ",s3 , s4);
  17. if(0 == strcmp(s3,s4))
  18. {
  19. puts("相同");
  20. }
  21. else
  22. {
  23. puts("不同");
  24. }
  25. getchar( ) ; //使程序暂停一下
  26. return 0;
  27. }

效果类似如下图:

Pic

unsigned int strlen(char * s):返回字符串s的长度,不包括字符串结尾标志'\0'。
  char * strcat(char * pdest,char * psrc):将字符串psrc追加到pdest的后面。请保证pdest指向的内存块空间足够。
  char * strlwr(char * s):将字符串s中的所有大写字符变成小写字符,并返回s。
  char * strupr(char * s):将字符串s中的所有小写字符变成大写字符,并返回s。

共同举例,代码:


  1. #include<stdio.h>
  2. #include<string.h> //使用strcpy需要引用这个头文件
  3. int main( )
  4. {
  5. char s1[50] = "Hello" , s2[ ]=" Everybody"; //要将字符中s1和s2连接起来,并存储到s1中,要保证s1大小足够
  6. strcat(s1 , s2); //将字符中s1和s2连接起来,并存储到s1中
  7. printf("字符串:\n%s\n中含有%d个字符\n",s1, strlen(s1) ); //用strlen获取字符串长度
  8. //strlen返回unsigned int,考虑到字符串长度有限,用%d输出不会有错
  9. strlwr(s1); //使用strlwr将全部大写字母转化成小写
  10. printf("字符串全部转化为小写的结果为\n%s\n",s1);
  11. strupr(s1); //使用strlwr将全部小写字母转化成大写
  12. printf("字符串全部转化为大写的结果为\n%s\n",s1);
  13. getchar( ) ; //使程序暂停一下
  14. return 0;
  15. }

效果类似如下图:

Pic

作者:冥河 QQ:3304576112
交流QQ群:554701039 C语言讲课群
本教程内容由本站保留版权,请勿复制传播
抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的