基础知识:
1.scanf的读取规则有"默认读取到空格结束"
解决方法:scanf("%[^\n]",arr); 作用:“读取到换行结束”
2.对字符串常用gets,puts
gets()读取字符串包括空格
put(x)相当于printf("%s\n", x) 比正常printf会多一个换行
3.字符数组和字符串的区别(有无\0)
例1:char s1[3]={'a','b','c'},s2[4]={'a','b','c','0'};
s1,s2都为字符数组,但是s2同时也是字符串。
4.初始化规则:
char str[1000]=''abdce'' --------默认后面加\0(即字符串)
5.两种打印字符数组的方式(1.遍历%c 2.直接打印%s)
例:
#include<stdio.h> int main() { char arr1[4], arr2[5]; scanf("%s",
arr1);//&arr1[] //方式1(一个一个出来) int i = 0; for (i = 0; i < 4; i++) { printf("%c",
arr1[i]); } printf("\n"); //方式2(一整个出来) printf("%s", arr1); }
输出结果:
———————————————————————————————————————————
题目:将一个字符串str的内容倒过来
#include<stdio.h> #include<string.h> int main() { char arr1[10000] = { 0 };
scanf("%[^\n]", arr1); int len = strlen(arr1); int left = 0; int right = len -
1; while (left < right) { char tmp = arr1[left]; arr1[left] = arr1[right];
arr1[right] = tmp; left++; right--; } printf("%s\n", arr1); return 0; }