C语言-字符串

作者: Jimmy_L_Wang | 来源:发表于2018-09-27 13:55 被阅读1次

    字符串

    字符串最适合放在char类型数组中存储。

    例如要表示字符串"ABC",数组元素必须按一下顺序依次保存:

    ‘A’ 'B' 'C' '\0'
    

    末尾null字符\0是字符串结束的"标志"

    printf("size %lu\n",sizeof("ABC")); //size 4
    

    字符串字面量的中间可以有null字符,不过应注意区分。字符串字面量"ABC"是字符串,而字符串字面量"ABC\0CD"不是字符串。

    空字符串

    char ns[] = ""; //元素个数是1,因为内部还有null字符
    

    字符串的读取

    #include <stdio.h>
    
    int main(void)
    {
        char name[100]; //为读取的字符串附加null字符并存储
        
        printf("Please input your name: \n");
        scanf("%s", name);//注意:scanf函数也不能加上& ! !
        printf("Bonsvoir, Mr / Miss %s !! \n", name);
        return 0;
    }
    

    字符串数组

    #include <stdio.h>
    
    int main(void)
    {
        char cs[][6] = {"Turbo", "NA", "DOHC"};
        
        for (int i = 0; i < 3; i++) {
            printf("cs[%d] = \"%s\"\n", i, cs[i]);
        }
        /*
         cs[0] = "Turbo"
         cs[1] = "NA"
         cs[2] = "DOHC"
         */
         return 0;
    }
    

    字符串处理

    字符串长度

    /**
     返回字符串长度
    
     @param s 字符串s
     @return 字符串长度
     */
    int str_length(const char s[])
    {
        int len = 0;
        while (s[len]) { //因为字符串最后一个元素是\0
            len++;
        }
        return len;
    }
    

    显示字符串

    /**
     显示字符串(打印字符串)
    
     @param s 字符串s
     */
    void put_string(const char s[])
    {
        int i = 0;
        while (s[i]) {
            putchar(s[i++]);
        }
    }
    

    数字字符的出现次数

    /**
     数字字符的出现次数
    
     @param s 需要计算的字符串
     @param cnt 保存数字字符的数组
     */
    void str_dcount(const char s[], int cnt[])
    {
        //将字符串s中的数字字符保存至数组cnt
        int i = 0;
        while (s[i]) {
            if (s[i] >= '0' && s[i] <= '9') {
                cnt[s[i] - '0']++;
            }
            i++;
        }
    }
    

    英文字符的大小写转换

    /**
     将英文字符转换为大写字母
    
     @param s 字符串
     */
    void str_toupper(char s[])
    {
        int i = 0;
        while (s[i]) {
            s[i] = toupper(s[i]);
            i++;
        }
    }
    
    /**
     将英文字符转换为小写字母
    
     @param s 字符串
     */
    void str_tolower(char s[])
    {
        int i = 0;
        while (s[i]) {
            s[i] = tolower(s[i]);
            i++;
        }
    }
    

    字符串数组的参数传递

    /**
     显示字符串数组(字符串数组的参数传递)
    
     @param s 字符串数组
     @param n 数组元素数量
     */
    void put_strary(const char s[][6], int n)
    {
        for (int i = 0; i < n; i++) {
            printf("s[%d] = \"%s\"\n", i, s[i]);
        }
    }
    
    ....
    
    char cs[][6] = {"Turbo", "NA", "DOHC"};
    put_strary(cs, 3);
    

    相关文章

      网友评论

        本文标题:C语言-字符串

        本文链接:https://www.haomeiwen.com/subject/xuwsoftx.html