字符 和 字符串 常用处理函数

char a[3] = {'m','j','\0'};
char a[3] = "mj"; //系统会自动在字符串尾部加上一个"\0"结束符。

 

<stdio.h>:


  putchar:字符输出函数
    putchar(65); //A
    putchar('A'); //A
    int a = 65;
    putchar(a); //A
    putchar一次只能输出一个字符,而printf可以同时输出多个字符。

  getchar:字符输入函数
      char c;
      c = getchar(); //getchar会将用户输入的字符赋值给变量c。
    getchar函数可以读入空格、TAB,直到遇到回车为止。scanf则不能读入空格和TAB。
    getchar一次只能读入一个字符。scanf则可以同时接收多个字符。
    getchar还能读入回车换行符,这时候你要敲2次回车键,第一次被getchar读入,第二次代表输入结束。

 

<string.h>:
  strlen:用来测量字符串的字符个数,不包括\0。
    int size = strlen("mj"); //长度为2
    char s1[] = "lmj";
    int size1 = strlen(s1); //长度为3
    char s2[] = {'m','j','\0','1','m','j','\0'};
    int size2 = strlen(s2); //长度为2 (从首地址开始计算字符个数,直到遇到"\0"为止。)

  strcpy:函数会将右边的"lmj"字符串拷贝到字符数组s中。
    char s[10];
    strcpy(s,"lmj"); //从s的首地址开始,逐个字符拷贝,直到拷贝到\0为止。当然,在s的尾部肯定会保留一个"\0"。
    如果右边的字符串中有好几个\0,strcpy函数只会拷贝第1个\0之前的内容,后面的内容不拷贝。
    char s[10];
    char c[] = {'m','j','\0','l','m','j','\0'};
    strcpy(s,c); //最后字符串s中的内容为:mj

  strcat:函数会将右边的"OC"字符串拼接到s1的尾部(第一个"\0"前面),最后s1的内容就变成了"LOVEOC"
    char s1[30] = "LOVE";
    strcat(s1,"OC");

    char s1[30] = {'L','m','j','\0','L','o','v','e','\0'};
    strcat(s1,"OC");
    printf("%s",s1); //输出:LmjOC

  strcmp:这个函数可以用来比较2个字符串的大小。
    char s1[] = "abc";
    char s2[] = "abc";
    char s3[] = "aBc";
    char s4[] = "ccb";
    printf("%d,%d,%d",strcmp(s1,s2),strcmp(s1,s3),strcmp(s1,s4));
    //输出结果:0,32,-2

      s1和s2相同,所以返回0;
      s1和s3是第二个字符不相同,b的ASCII码值是98,B的ASCII码值是66,b-B=32,所以返回32;
      s1和s4是第一个字符不相同,a的ASCII码值是97,c的ASCII码值是99,a-c=-2,所以返回-2;

 

 

posted @   tzktzk1  阅读(166)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示