1 使用字符数组存储字符串
void main(){
char str[] = { 'f', 'u', 'c', 'k' };
printf("%s\n", str);
printf("%#x\n", str);
getchar();
}
打印结果:
后面出现乱码是因为没有结束符
char str[] = { 'f', 'u', 'c', 'k' ,'\0'};
添加结束符后,则不会显示乱码。
同样也指定字符长度,也不会显示乱码。
char str[5] = { 'f', 'u', 'c', 'k', };
char str[5] = "fuck";
此时的字符串可以修改
str[0] = 'a';
打印结果将会变成:auck。
2 字符指针
void main(){
//内存连续排列
char *str = "how are you?";
//不可以修改
//*str = 'a'; //将会报错
printf("%s\n",str);
printf("%#x\n",str);
//使用指针加法,截取字符串
str += 3;
while (*str){
printf("%c",*str);
str++;
}
getchar();
}
打印结果
how are you?
0x12f58b8
are you?
3 字符串拼接
void main(){
char dest[50];
char *a = "china";
char *b = "is powerful!";
strcpy(dest,a);
strcat(dest,b);
printf("%s\n",dest);
system("pause");
}
打印结果:
chinais powerful!
4 在一个字符串中查找已知字符的下标位置
void main(){
char *str = "I have a girl friend";
printf("%#x\n",str);
char *p = strchr(str,'a');
if (p){
printf("索引位置:%d\n",p-str);
}
else{
printf("没有找到");
}
system("pause");
}
打印结果:
0xd359ec
索引位置:3
5 在a中查找b第一次出现的位置
void main(void){
char *a = "I have a girl friend";
char *b = "a";
//U元素的指针
char* p = strstr(a, b);
if (p){
printf("索引位置:%d\n", p - a);
}
else{
printf("没有找到");
}
system("pause");
}
打印结果
索引位置:3