• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

32深入理解C指针之---字符串操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  一、字符串操作主要包括字符串复制、字符串比较和字符串拼接

    1、定义:字符串复制strcpy,字符串比较strcmp、字符串拼接strcat

    2、特征:

      1)、必须包含头文件string.h

      2)、具体可以通过man 3 strcpy、man 3 strcmp、man 3 strcat帮助文件,查看具体用法

      3)、输出字符串的内容是在printf函数中,使用%s的占位符,后面,只要之处字符串的首地址即可
      
    3、字符串赋值strcpy:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4
 5 int main(int argc, char **argv)
 6 {
 7     char *ptrArr1 = (char *)malloc(sizeof(char) * 10);
 8     strcpy(ptrArr1, "guochaoteacher");
 9     printf("ptrArr1: %s\n", ptrArr1);
10
11     char *ptrArr2 = (char *)malloc(strlen("guochaoteacher") + 1);
12     strcpy(ptrArr2, "guochaoteacher");
13     printf("ptrArr2: %s\n", ptrArr2);
14
15     return 0;
16 }


      1)、为字符串申请内存空间,可以使用第7行的形式,直接指定字节大小,这种是做法是不安全的

      2)、为字符串申请内存空间,可以使用第11行的形式,使用strlen函数确定需要的字节大小,切记字符串的结束符'\0'是需要一个字节的,这种是做法是安全的

      3)、使用strcpy函数将第二个参数的内容复制到第一个参数中
  

    4、字符串比较strcmp:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4
 5 int main(int argc, char **argv)
 6 {
 7     char *command = (char *)malloc(sizeof(char) * 10);
 8     printf("please input command: ");
 9     scanf("%s", command);
10     printf("command: %s\n", command);
11     if(strcmp(command, "Quit") == 0 || strcmp(command, "quit") == 0){
12         printf("You input the command: %s", command);
13     }else{
14         printf("You can't quit!\n");
15     }
16
17     return 0;
18 }


      1)、为字符串申请内存空间,可以使用安全和不安全的方式,如果不能确定就将空间设置的足够大也可;

      2)、使用strcmp函数时,将会比较第一个参数和第二个参数在字典中的位置,若第一个小,返回负数,大就返回正数,否则为零;

      3)、使用strcmp函数比较的是两个参数中的内容;

      4)、使用==比较的是两个参数中的地址,即使内容完全一样,结果也可能是否定的;
  
    5、字符串拼接strcat:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4
 5 int main(int argc, char **argv)
 6 {
 7     char *ptrArr1 = (char *)malloc(sizeof(char) * 15);
 8     ptrArr1 = "Hello";
 9     printf("ptrArr1: %s and %p\n", ptrArr1, ptrArr1);
10     char *ptrArr2 = (char *)malloc(sizeof(char) * 25);
11     strcat(ptrArr2, ptrArr1);
12     printf("ptrArr2: %s and %p\n", ptrArr2, ptrArr2);
13     strcat(ptrArr2, " World!");
14     printf("ptrArr2: %s and %p\n", ptrArr2, ptrArr2);
15
16     return 0;
17 }


      1)、字符串使用前,记得一定要提前申请内存空间;

      2)、使用strcat函数将第二个参数的内容拼接到第一个参数中

      3)、在strcat函数中,第一参数需要有足够的空间放置拼接后的内容

      4)、在strcat函数中,第二参数可以是具体的字符串字面量,也可以是指针


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】国外B2C创新模式网站发布时间:2022-07-13
下一篇:
C#Post数据和接收简单示例【转】发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap