// 字符串的定义和初始化 void test() {// "mj"char s[] = {'m', 'j', '\0'}; // 字符串"mj"char s1[3] = {'m', 'j', '\0'}; // 字符串"mj"char s2[3] = {'m', 'j'}; // 并不是正规的字符串char s3[] = "mj"; // 字符串"mj",会自动在尾部加上一个\0 }// 输出字符串 void test1() {char s[] = "mj";printf("%s\n", s);printf("%s\n", "lmj");// printf可以输出多个字符串printf("%s %s %s\n", "mj", "lmj", "ios");// puts只能输出一个字符串,puts会自动换行puts("ios");puts("ios"); }// 输出字符串2:\0的作用 void test2() {char s1[] = {'l', 'm', 'j', '\0'};// puts(s1);char s2[] = {'m', 'j'};// 打印一个字符串// puts(s2);printf("%s", s1); }// 字符串的输入 void test3() {// itcast mjchar s2[] = "mj";char s1[2];// s1就是数组的地址,所以不用&s// 输入完毕后,会自动在s1的尾部加一个\0// scanf("%s", s1);// 从s1这个地址开始赋值用户输入的字符序列// 在尾部会自动加上一个\0 gets(s1);// 输出用户输入的字符串printf("s1 = %s\n", s1);printf("s2 = %s", s2); }int main(int argc, const char * argv[]) {test3();return 0; }