关于字符串(1)

来源:互联网 发布:excle怎么做数据分析 编辑:程序博客网 时间:2024/05/21 09:55


    1.字符数组str[ ]

           字符数组与普通数组一样,都是数组,只不过储存的是字符,而且C和C++都为它提供了很多函数。

         1.初始化

          (1)  字符数组可以逐个赋值,类似于 char c[10];      c[0]='I'   c[1]='M' 一直像后面赋值,就是将10 个元素分别赋值给c[0]~c[9],也可以用c[10]={' S '.....'E' };的方法赋值。

          (2)  用字符串常量来初始化 char str[ ]={"I am happy"}; 也可以也成char str[ ]="I am happy";
            注:如果是刚接触C++的请注意单引号与双引号的区别。

         2.字符数组的赋值和引用

          比如a和b都是相同长度和类型的字符数组,我们用 “   a=b   ”将b赋值给a是错误的。但是 a[0]=b[0]是正确的。

         3.字符串及其结束标志

          在我们之前了解到了字符数组中,比如用一个一维数组 char str[12]={' I ','   ','  a ',' m ','   ',' h ','  a ','  p ',' p ',' y ' };我们可以看到,空格和字母算起来一共是10个字符。但是我们创建的是一个长度为12的字符数组,那么最后两个位置系统会怎么办呢? 那就是用‘\0’自动填补空字符。

           我们的小标题是字符串的结束标志,那么可以猜到‘\0’就是我们的字符串结束标志了。也就是遇到‘\0’就代表字符串到此结束,由它前面的字符组成有效字符串。我们往往可以不需要知道字符串的长度而依靠‘\0’来判断字符串是否结束了。
           注:‘\0’代表ASCII码为0的字符,是一个不能够显示的字符。

           4.字符串的输入和输出         

            (1)对于字符数组,我们可以用for循环逐个输入和输出。

            (2)整个字符串输入输出:

                                    char str[20] ;

                                    cin>>str;

                                    cout<<str;

                     注:在执行cout时,str代表第一个元素也就是str[0]的地址,执行“cout<<str” 代表是从str所指向的第一个元素开始输出,直到遇见'\0'为止。输入时不包括'\0'(系统会自动在你输入完毕按enter时在后面的单元里面加)。

             5.字符串处理函数对字符串进行操作

            头文件为string 和string.h.


           (1).字符串连接函数 strcat(char[ ],const char[ ])
                 char str1[30]="People's Pepublic of ";
                 char str2[  ]="China";
                 cout<<strcat(str1,str2);
           输出:
                 People's Republic of China

           

             (2).字符串复制函数strcpy(char[ ],const char[ ])
                  strcpy将第二个字符数组中的字符复制到第一个字符数组中,并将第一个覆盖。
                  char str1[10],str2[ ]="China";
                  strcpy(str1,str2);
                   注:在函数中第一个参数是数组名,第二个可以是字符串常量,如:
                              strcpy(str1,"hello");
                   也可以用strcpy(str1,str2,num);          num 代表数字,是将str2的前num个字符复制到str1中去,再在后面加一个‘\0’.

                   之前有提到不能用str1=str2直接赋值,现在就能用这个函数赋值了。



              (3).字符串比较函数strcmp(const char[ ],const char[ ])
                   下面的写法都是合法的:
                                                strcmp(str1,str2);
                                                strcmp("China","Korea");
                                                strcmp(str1,"Beijing");
                   因为只参加比较而不改变内容,所以都加const声明。
                   比较规则为两个字符串从左到右依次比较(按ASCII码比较大小),直到遇见不同的字符,就以这个字符比较的结果为准,如果没有不同的字符,则返回0.如果str1大于str2,则返回正整数,如果小于返回负整数。(与赋值类似,不可以用str1>str2这种表达方法,因为这代表两个地址而你想比较的是内容。)



             (4).字符串长度函数strlen(const char [ ]);
                   这个函数测试字符串的实际长度,不包括'\0'在内
                   char str[10]="happy";
                   cout<<strlen(str);
                   输出的结果为5(实际长度)。

          



           以上是对字符的输入输出以及一些简单的处理函数的总结与概括。后面还有继续介绍。 

                                                                          

1 0
原创粉丝点击