1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main1(void) 6 { 7 //用数组的方式存储; 8 char str1[100] = "Chien is here"; 9 10 //数组的方式; 11 //p1存储的的是栈上分配数组的地址,数组拷贝代码区的字符串常量; 12 //在堆上开辟的地址; 13 char* p1 = (char[]) { 'm', 's', 'p', 'a', 'i', 'n', 't','\0'}; 14 15 //"notepad"是常量字符串,在代码区; 16 //p2此时存储的是代码区的地址; 17 char* p2 = "notepad"; 18 19 *str1 = 'A'; 20 puts(str1); 21 22 *p1 = 'X'; 23 puts(p1); 24 25 //p2后面的"notepad"是一个常量; 26 //*p2 = 'Z'; 27 //puts(p2); 28 29 30 system("pause"); 31 return 0; 32 } 33 34 35 int main2(void) 36 { 37 char str1[5] = "calc"; 38 printf("%d\n", sizeof(str1)); 39 40 //strlen可以计算字符串的长度,但是不包括'\0' 41 printf("%d\n", strlen(str1)); 42 43 for (int i = 0; i < 5; i++) 44 { 45 printf("%d\n", str1[i]); 46 } 47 48 system("pause"); 49 return 0; 50 } 51 52 53 54 int main3(void) 55 { 56 57 //没有'\0'打印的时候,打印的时候会烫烫烫; 58 //整体显示,必须要有\0; 59 char str[6] = { 'a','b','c','d','e','\0'}; 60 printf("%s", str); 61 62 putchar('\n'); 63 64 char str2[6] = { 'a','b','c','d','e','f' }; 65 for (int i = 0; i < 6; i++) 66 { 67 putchar(str2[i]); 68 } 69 70 putchar('\n'); 71 72 //字符串个数为【5】,多余{'a','b','c','d'}其余字符设置为编号为0的字符‘\0’的字符; 73 //少了以后编译会出错; 74 //必须要考虑'\0'; 75 76 77 78 system("pause"); 79 return 0; 80 } 81 82 83 84 //指针循环输出字符的方法; 85 int main4(void) 86 { 87 char* p = "mspaint"; 88 89 for (char* i = p; *i != '\0'; i++) 90 { 91 putchar(*i); 92 } 93 94 system("pause"); 95 return 0; 96 } 97 98 99 int main(void) 100 { 101 char* p = "iloveyou"; 102 //改变指针的位置来输出不同的字符; 103 printf("%s", p + 5); 104 105 //在代码区,代码区允许编译,但是不允许修改,会报错 106 p[4] = 'x'; 107 108 system("pause"); 109 return 0; 110 }
浙公网安备 33010602011771号