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

来源:互联网 发布:app源码是什么 编辑:程序博客网 时间:2024/04/27 19:49

------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
原创粉丝点击