为了账号安全,请及时绑定邮箱和手机立即绑定

C语言-字符串

标签:
Java

字符串

字符串最适合放在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);



作者:Jeremy_L_Wang
链接:https://www.jianshu.com/p/61991b541ec1


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消