【C/C++】字符函数和字符串函数

06-02 1241阅读

【C/C++】字符函数和字符串函数

文章目录

  • 前言
  • 字符函数和字符串函数
    • 1.字符分类函数
    • 2.字符转换函数
    • 3.strlen的使用和模拟实现
      • 3.1 代码演示
      • 3.2 strlen返回值
      • 3.3 strlen的模拟实现
      • 4.strcpy的使用和模拟实现
        • 4.1 代码演示
        • 4.2 模拟实现
        • 5.strcat的使用和模拟实现
          • 5.1 代码演示
          • 5.2 模拟实现
          • 6.strcmp的使用和模拟实现
            • 6.1 代码演示:
            • 6.2 模拟实现:
            • 7.strncpy函数的使用
              • 7.1 代码演示
              • 7.2 ⽐较strcpy和strncpy函数
              • 8.strncat函数的使用
                • 8.1 代码演示
                • 8.2 strcat和strncat对比
                • 9.strncmp函数的使用
                  • 9.1 代码演示
                  • 9.2 strcmp和strncmp⽐较
                  • 10.strstr的使用和模拟实现
                    • 10.1 代码演示
                    • 10.2 strstr的模拟实现
                    • 11.strtok函数的使用
                      • 11.1 代码演示
                      • 11.2 注意事项
                      • 12.strerror函数的使用
                        • 12.1 代码演示
                        • 12.2 perror

                          前言

                          在编程的过程中,我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了 ⼀系列库函数,接下来我们就学习⼀下这些函数。

                          字符函数和字符串函数

                          1.字符分类函数

                          C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h

                          【C/C++】字符函数和字符串函数

                          这些函数的使⽤⽅法⾮常类似,我们就讲解⼀个函数的事情,其他的⾮常类似:

                          int islower ( int c );
                          

                          islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟,如果是⼩写字⺟就返回⾮0的整数,如果不是⼩写字⺟,则返回 0。

                          练习:

                          写⼀个代码,将字符串中的⼩写字⺟转⼤写,其他字符不变。

                          #include 
                          #include 
                          int main ()
                          {
                           int i = 0;
                           char str[] = "Test String.\n";
                           char c;
                           while (str[i])
                           {
                           c = str[i];
                           if (islower(c)) 
                           c -= 32;
                           putchar(c);
                           i++;
                           }
                           return 0;
                          }
                          

                          也可以写成

                          while(str[i]!='\0')
                          {
                             if(islower(str[i]))
                             {
                              str[i]=toupper(str[i]);
                             }
                             i++;
                          }
                          

                          2.字符转换函数

                          C语⾔提供了2个字符转换函数:

                          int tolower ( int c ); //将参数传进去的⼤写字⺟转⼩写  
                          int toupper ( int c ); //将参数传进去的⼩写字⺟转⼤写 
                          

                          上⾯的代码,我们将⼩写转⼤写,是-32完成的效果,有了转换函数,就可以直接使⽤ tolower 函 数。

                          #include 
                          #include 
                          int main ()
                          {
                           int i = 0;
                           char str[] = "Test String.\n";
                           char c;
                           while (str[i])
                           {
                           c = str[i];
                           if (islower(c)) 
                           c = toupper(c);
                           putchar(c);
                           i++;
                           }
                           return 0;
                          }
                          

                          3.strlen的使用和模拟实现

                          size_t strlen ( const char * str );//size_t是无符号整型
                          

                          功能:统计参数 str 指向的字符串的⻓度。统计的是字符串中 ‘\0’ 之前的字符的个数。

                          参数:

                          • str :指针,指向了要统计⻓度的字符串。 返回值:返回了 str 指向的字符串的⻓度,返回的⻓度不会是负数,所以返回类型是 size_t 。

                          if((strlen("abc")-strlen("abcdef"))>0)//size_t为无符号整型,所以3-6一定大于0
                          {
                              printf(">\n");//所以输出>
                          }
                          else
                          {
                              printf("
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码