黑马程序员-c语言字符串

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

需要接入string.h文件来使用一些字符串函数

c语言中用char[]数组来表示字符串,采用%s输出,结尾以\0标示,\0不是数字0,是非打印自负,其ASCII码为0

    char name[40];
    int size;
    long int letters;
    printf("Enter Name!\n");
    scanf("%s",name);
    size = sizeof(name);
    letters = strlen(name);
    printf("name:%s,size:%d,letters:%ld\n",name,size,letters);
    return 0;
sizeof()以字节为单位给出数据的大小,关于括号的使用,如果想获取某一个类型的大小是必须的,所以一般都带括号就可以了

strlen()以字符为单位给出字符串的长度

scanf()标准输入函数,由于char name[]是地址,所以不需要&字符

在上的代码中,sizefo会报告name有40个内存单元,而strlen会报告name使用了前8个

字符串中结尾的\0虽然不可见,但是也计算在内

scanf输入函数具有多种用法

    printf("Enter Number!\n");
    int a,b;
    scanf("%d%d",&a,&b);
    printf("A: %d, B :%d",a,b);
   printf("Enter Number!\n");
    int a,b;
    scanf("%d,%d",&a,&b);
    printf("A: %d, B :%d\n",a,b);
第二种输入中,可以以,符号为间隔的两个数字


    char text[10] = "123456789";
    char text2[10] = {'1','2'};
    char text3[] = {'1','2'};
    char text4[] = "123456";
    printf("A %s\n",text);
    printf("B %s\n",text2);
    printf("C %s\n",text3);
    printf("D %s\n",text4);

A 123456789

B 12

C 12\330\367\277_\377

D 123456

上面的代码使用了4种不同的字符串初始化,其中的text3输入了一些不相关的数字

是由于,text3使用的初始化方法缺少了\0字符导致

至于其他三种都会自动加入\0,对于和text3相似的text2缺正常输出的原因,是因为text2[10]提前声明长度

    char text[3][10] = {"Mei","Shao","Nv"};
    char text2[2][10] ={
        {'M','e','i'},
        {'S','h','a','o'}
    };
    printf("text:%s\n",text[2]);
    printf("text2:%s\n",text2[1]);

text:Nv

text2:Shao

上面的代码展示了字符串数组,实际是采用二维数组的结构来实现的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值