1.如何避免读入空格、回车等符号,以防止出错

char s[100];

scanf("%s",s)//这样读取会忽略掉空格、回车、格式控制符等。

char ch;

scanf("%c",&c)//这样能读到空格、回车、格式控制符等。

但是题目中很少会需要读取空格和回车等符号。所以,当有多个数据时,以字符串的形式读入往往会出错(不小心读入了回车、空格等符号);

为了避免这种情况,可以以字符串的形式读入字符;

比如 ,scanf("%s",s),这s[0]既是读入的第一个字符。

当然也可以用cin>>读入,这样会自然区忽略掉空格等符号。

2.如何将字符串中的第一个字符读入s[1];

scanf("%s",s)//默认第一个字符是读入s[0]的,但是有些题目将第一个字符读入s[1]会避免每次访问第i个字符时下标总是要减1(因为第i个字符存在了s[i-1]处).

解决方法:

scanf("%s",s+1);// 就是从控制台读取数据,然后将数据存到从s+1开始的地方
而不是从s指向的空间的起始地址开始