//代码一
//使用字符串数组存储字符串
1
void main(){
2
//char str[] = {'c','h','i','n','a','\0'}; 不加'\0' 末尾会有其他东西
3
//char str[6] = { 'c', 'h', 'i', 'n', 'a' }; 不加'\0'会自动补全
4
5
char str[10] = "china";
6
//可以修改
7
str[0] = 's';
8
printf("%s\n",str);
9
printf("%#x\n",str);
10
getchar();
11
}
//代码二
//字符指针 数组相当于StringBuffer和StringBuilder 指针相当于string不能修改
1
void main(){
2
//内存是连续排列的
3
char *str = "how are you?";
4
//不可以修改
5
//str+=1;
6
//*str='y';
7
printf("%s\n",str);
8
printf("%#x\n", str);
9
10
//使用指针加法,截取字符串
11
str += 3;
12
while (*str){
13
printf("%c",*str);
14
str++;
15
}
16
getchar();
17
}
//代码三
//strcpy 复制拷贝
//strcat字符串拼接函数 //要定义一个数组去存储 不能直接拼接
1
void main(){
2
char dest[50];
3
char *a = "china";
4
char *b = "is powerfull";
5
strcpy(dest,a);//复制
6
strcat(dest, b);
7
printf("%s\n",dest);
8
getchar();
9
}
//代码四
//strchr在一个串中查找给定的字符的第一个匹配的地址
1
void main(void){
2
char *str = "I want to go to USA!";
3
//U元素的指针
4
//str+3
5
char* p = strchr(str, 'w');;
6
if (p){
7
printf("索引位置:%d\n",p-str);
8
}
9
else{
10
printf("没有找到!");
11
}
12
getchar();
13
}
//代码五
//strstr 从字符串haystack中寻找needle第一次出现的位置
1
void main(){
2
char *haystack = "I want go to USA!";
3
char *needle = "to";
4
5
char* p = strstr(haystack, needle);
6
if (p){
7
printf("索引地址:%d\n",p-haystack);
8
}
9
else{
10
printf("没有找到!");
11
}
12
getchar();
13
}