基础知识:
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;
}