字符串
字符串
字符数组:
char word={‘h’,‘e’,‘l’,‘l’,‘o’,}
字符串:
char word={‘h’,‘e’,‘l’,‘l’,‘o’,’\0’}
即字符串就是带了个\0的字符数组
字符串变量
字符数组与字符指针表示字符串的区别:
1 | 字符数组表示字符串 | 字符指针表示字符串 |
---|---|---|
定义方法 | char[] =“Hello” | char *word=“Hello” |
存储位置 | 可读写的存储区域,如堆栈 | 只读的存储区域,如静态区 |
可进行的操作 | word[0}=‘h’ √ | word[0]=‘h’ × |
使用场景 | 字符串需要修改 | 字符串不需要修改 |
字符串的输入输出
1.从键盘输入一以空格或回车结束的子传承放入字符数组中,并自动加’\0’:scanf(”%s“,字符数组)
2.限制输入长度:scanf(”10%s“,字符数组)
3.依次输出字符串中的每个字符直到遇到字符’\0’;printf(”%10s",字符数组或字符指针)
字符串数组以及程序参数
char words[][10]={
"hello",
"world"
}
char *word[]={
"hello"
"world"
}
字符串函数
字符串函数 | 原型 | 功能 |
---|---|---|
getchar | int putchar(int i) | 向标准设备写一个字符 |
putchar | int getchar(int i) | 向标准设备读一个字符 |
strlen | size_t strlen(const char *s) | 计算字符串的长度,不包括’\0’ |
strcmp | int strcmp(const char *s1,const char *s2) | 逐字符比较两个字符串 |
strcpy | char *strcpy(char *restrict dest, const char *restrict src) | 把src所指向的字符串复制到dest |
strcat | char *strcat(char *restrict dest,const char *restrict src) | 把src所指向的字符串复制到dest的后面,dest空间应该足够长 |
strchr,strrchr,strstr,strchar… |