字符串

来源:互联网 发布:微信默认浏览器淘宝 编辑:程序博客网 时间:2024/05/06 06:39

字符串:

     是一串字符,也是一个以'\0'结尾的字符数组

  1. #include<stdio.h>
  2. int main(){
  3.    //定义及初始化
  4.    char arr[]="abc";
  5.    char arr1[]={'a','b','c','\0'};
  6.    char arr2[]="abc0";       //0会输出   0表示字符
  7.    char arr3[]={'a','b','c',0};
  8.    printf("%s,%s,%s,%s\n",arr,arr1,arr2,arr3);  //运行结果:abc,abc,abc0,abc
  9.    return 0;
  10. }

赋值:strcpy

  1. //strcpy的用法,strcpy用于赋值
  2. #include<stdio.h>
  3. #include <string.h>
  4. int main(){
  5.    char arr[8];
  6.    strcpy(arr,"ehfue");
  7.    for (int i=0; i<8; i++) {
  8.        printf("%c",arr[i]);
  9.    }
  10.    printf("\n");
  11.    return 0;
  12. }

特点:

1.后面必须有'\0'结尾.否则只算普通字符数组,但'\0'不会输出,只表示字符串结束.

2.字符串输出占位用%s必须遇到\0.才能结束.否则会继续输出更高位地址值的字符.

  1. #include <stdio.h>
  2. int main(){
  3.    char s[]="abc";
  4.    char s1[]={'a','b','c'};
  5.    char s2[]="haha";
  6.    printf("s=%s,s1=%s1,s2=%s\n",s,s1,s2);   //运行结果:s=abc,s1=abcabc1,s2=haha
  7.    printf("%lu\n",sizeof s);        //运行结果:4
  8.    return 0;
  9. }

3.strlen函数用于计算一个字符串的长度(字符数量),使用必须引入<string.h>.

4.strlen不会计算\0.且碰到\0结束,但是sizeof不受\0的影响,且长度会包含\0;

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(){
  4.    char s[]="abc";
  5.    int a=strlen(s);                 //不计算\0
  6.    int b=sizeof(s);                 //计算\0
  7.    printf("a=%d,b=%d\n",a,b);       //运行结果:a=3,b=4
  8.    return 0;
  9. }

注意:中文字符=3个英文字符

5.字符串一定是字符数组,但字符数组不一定是字符串.

字符串数组是一个二维数组.

练习

  1. //定义一个字符串数组,并打印所有字符串
  2. #include <stdio.h>
  3. int main(){
  4.    char arr[3][10]={"adbd","dfjie","dfjie"};
  5.    for (int i=0; i<3; i++) {
  6.        printf("%s\n",arr[i]);
  7.    }
  8. }

  1. //编写一个函数,判断一个字符串中是否包含某个字符,包含返回1,不包含返回0(用两种方法);
  2. //方法一:
  3. #include <stdio.h>
  4. #include <string.h>
  5. int isHasChar(char arr[],char c);
  6. int main(){
  7.    char arr[]="dfiejsof";
  8.    char a='m';
  9.    int d=isHasChar(arr,a);
  10.    printf("%d\n",d);
  11. }
  12. int isHasChar(char arr[],char c){
  13.    int result=0;
  14.    for (int i=0; i<strlen(arr); i++) {
  15.        if (arr[i]==c) {
  16.            result=1;
  17.            break;
  18.        }
  19.    }
  20.    return result;
  21. }
  1. //方法二:
  2. #include <stdio.h>
  3. #include <string.h>
  4. int isHasChar(char arr[],char c);
  5. int main(){
  6.    int i=0;
  7.    char arr[]="dfiejsof";
  8.    char a='d';
  9.    int d=isHasChar(arr,a);
  10.    printf("%d\n",d);
  11. }
  12. int isHasChar(char arr[],char c){
  13.    int i=0;
  14.    while (i<strlen(arr)) {       //判断可以为arr[i]!=0或arr[i]!='\0'
  15.        if (arr[i]==c) {
  16.            return 1;
  17.        }
  18.        i++;
  19.    }
  20.    return 0;
  21. }






 




0 0
原创粉丝点击