1.初始化字符数组
#include<stdio.h>
int main()
{
char str[20]="helloworld";
//char str[20]={'h','e','l','l','o','w','o','r','l','d'};
printf("%s\n",str);
printf(str);
return 0;
}
2.字符串结尾标记\0
(1).初始化列表长度小于数组长度
char str[20]= {'h','e','l','l','o','w','o','r','l','d'};
//前10位为helloworld,后面全补0
//第11位为数值0,字符串正常结尾
(2).初始化列表长度等于数组长度
char str[10]= {'h','e','l','l','o','w','o','r','l','d'};
//没有空间可以存放数值0,不能正常的结尾
(3).初始化列表长度大于数组长度
char str[5]= {'h','e','l','l','o','w','o','r','l','d'};
3.如何测量字符串的长度
#include<stdio.h>
int main()
{
char str[20] = "helloworld";
printf("%d\n", sizeof(str));
return 0;
}
通过运行结果我们可以看出,sizeof不能测出字符数组中字符串的长度。
(1).使用循环测量字符串长度
- 字符串是以\0结尾的,我们需要知道\0前面的字符个数
#include<stdio.h>
int main()
{
char str[20] = "helloworld";
int len=0;
while(str[len]!='\0')
{
len++;
}
printf("%d",len);
return 0;
}
(2).使用strlen函数测量字符串长度
strlen函数的正确使用方法:
- strlen可以接受一个字符串作为参数
- strlen字符串返回值为这个字符串的长度
- 使用strlen函数,需要包含string.h头文件
#include<stdio.h>
#include<string.h>
int main()
{
char str[20]="helloworld";
int len1,len2;
len1=strlen(str);
len2=strlen("helloworld");
printf("%d\n",len1);
printf("%d\n",len2);
printf("%d\n",sizeof(str));
//sizeof(str)测量数组本身所占用的空间大小
printf("%d\n",sizeof("helloworld"));
return 0;
}
4.修改字符数组
#include<stdio.h>
#include<string.h>
int main()
{
char str[] = "abcdef";
printf(str);
printf("\n");
for (int i = 0; i < strlen(str); i++) {
str[i] = str[i] - 32;
}
printf(str);
return 0;
}
5.输入字符串
#include<stdio.h>
#include<string.h>
int main()
{
char str[20];
scanf("%s",str);
printf(str);
printf("\n");
for (int i = 0; i < strlen(str); i++) {
str[i] = str[i] - 32;
}
printf(str);
return 0;
}
6.getchar函数
- ch=getchar();等待从键盘上输入一个字符
#include<stdio.h>
int main()
{
char ch;
ch=getchar();
ch=ch-32;
printf("%c",ch);
return 0;
}
7.putchar函数
#include<stdio.h>
#include<string.h>
int main()
{
char str[]="helloworld";
int len;
for(int i=0;i<strlen(str);i++){
putchar(str[i]);
}
return 0;
}