首页 > 其他 > 详细

C字符串总结:

时间:2015-12-04 14:20:16      阅读:285      评论:0      收藏:0      [点我收藏+]

一,字符指针&字符数组

     两者形式:

          字符指针:char *p;

          字符数组:char str[100];

     两者区别:

          字符指针p是变量;

          字符数组str是常量;

     访问元素方式:

           字符指针:*(p+i) || p[i],    访问第i个元素;

           字符数组:*(str+i) || str[i]   访问第i个元素;

      利用 sizeof() 求大小:

           字符指针: sizeof(p) = 4,       sizeof(p)求的是指针p所占的空间,恒为4字节;

           字符数组: sizeof(str) = 100, sizeof(str)求的是数组str的真实空间,100;

       字符串函数strlen()说明:

           strlen()仅仅求出字符串中第一个‘\0‘之前的字符个数,

           printf("%s",str)只输出第一个‘\0‘之前的字符个数;

           函数原型:

           int strlen(char *p)

           {

                   int count=0;

                   if(p==NULL)

                       return count;

                   while(*p++ != ‘\0‘)

                       count++;

                   return count;

           }

      简单实例:

          

技术分享
 1 #define  _CRT_SECURE_NO_WARNINGS //关闭安全检查
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 
 6 //for语句
 7 int mystrlen(char* str)
 8 {
 9     int i = 0;
10     for (char*p = str; *p != \0; p++)
11     {
12         i++;
13     }
14     return i;//实现字符串统计
15 }
16 
17 //go语句
18 int mystrlenA(char* str)
19 {
20     char *p = str;
21     int i = 0;
22 AAA: if (*p!=\0)
23 {
24          i++;
25          p++;
26          goto AAA;
27 }
28      return i;
29 }
30 
31 
32 //递归实现
33 int mystrlenB(char *str)
34 {
35     if (*str==\0)
36     {
37         return 0;
38     }
39     else
40     {
41         return 1 + mystrlenB(++str);
42     }
43 
44 
45 }
46 
47 
48 
49 void  main()
50 {
51     char str[100] = "china is good";
52     char *p = str;
53     char *q = malloc(sizeof(char)*50);
54     q = "hello,i am q";
55     printf("str:%s",str);
56     printf("\nsizeof(str):%d", sizeof(str));
57     printf("\nstrlen(str):%d", strlen(str));
58     printf("\n\np:%s", p);
59     printf("\nsizeof(p):%d", sizeof(p));
60     printf("\nstrlen(p):%d", strlen(p));
61     printf("\n\nq:%s", q);
62     printf("\nsizeof(q):%d", sizeof(q));
63     printf("\nstrlen(q):%d", strlen(q));
64 
65     printf("\n%d", mystrlen(str));//从开头第一个字符到\0字符
66     printf("\n%d", mystrlenA(str));
67     printf("\n%d", mystrlenB(str));
68 
69     getchar();
70 }
View Code

 

      运行结果:

      技术分享

 

特别说明:《C Primer Plus》第五版 第10章有数组,指针,函数的详细讨论,11章详细介绍字符串·相关操作;

C字符串总结:

原文:http://www.cnblogs.com/weiyikang/p/5019009.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!