字符串基本操作

来源:互联网 发布:图形图像设计软件 编辑:程序博客网 时间:2024/06/05 00:17

字符串:
1、C语言的字符串是以0结尾的字符串
2、C语言中没有字符串类型,而是通过字符数组,来模拟字符串
3、字符串的内存分配可以在 堆上、栈上、全局区(很重要)

#include "stdio.h"#include "stdlib.h"#include "string.h"//字符数组  初始化void main61(){    // 1 指定长度    char buf2[100] = {'a','b','c','d'};    // 1-1 char buf2[100] = {'a','b','c','d'};//如果初始化的个数大于分配内存的个数,编译报错    // 1-2  后面的buf2[4]--buf2[99]都是0    // 2 不指定长度,C编译器会自动求元素的个数    char buf1[] = {'a','b','c','d'}; //buf1是一个数组  不是一个以0结尾的字符串    char buf11[] = {'a','b','c','d','\0'};  //若要使buf1变成字符串,在末尾人工加上 '\0' 即可    printf("buf2:%s\n",buf2);    printf("buf2[88]:%d\n",buf2[88]);    printf("buf11:%s\n",buf11);    printf("buf11[4]:%d\n",buf11[4]);     //三种0的区别    printf("%d,%d,%d\n",'\0','0',0); //0,48,0    system("pause");    return;}//用字符串  来  初始化字符数组//strlen()  长度不包括0,仅指字符串的大小  //sizeof()  内存块的大小void main62(){    int size = 0;    char buf3[]="abcd";  //buf3作为字符数组  应该是5个字节,因为字符串末尾还有'\0',也会存入buf3中                         //作为字符串,应该是4个字节    int len = strlen(buf3);    printf("buf3字符串的长度:%d\n",len);  //4    //buf3作为数组,数组是一种数据类型,本质(固定大小的内存块的别名)    size= sizeof(buf3);  //sizeof--求字节数    printf("buf3数组所占用的内存空间的大小:%d\n",size);    {        char buf4[128] = "abcd";        printf("buf4[4]:%d\n",buf4[4]);    }    system("pause");    return;}//通过数组下标和指针void main(){    int i = 0;    char *p = NULL;    char buf5[128] = "abcdefg";    for( i=0 ; i<strlen(buf5) ; i++ )    {        printf("%c  ",buf5[i]);    }    printf("\n");    p = buf5;  //“buf5代表数组的地址”这句话是错误的               // buf5代表的应该是数组首元素的地址     for( i=0; i<strlen(buf5); i++ )    {        printf("%c  ",*(p+i));    }    printf("\n");    system("pause");    return;}
0 0
原创粉丝点击