#define SPACE ' '
int main()
{
char ch;
ch=getchar();
while(ch!='\n')
{
if(ch==SPACE)
putchar(ch);
else
putchar(ch+1);
ch=getchar();
}
putchar('\n');
return 0;
}
上面的程序是通过getchar函数和putchar输入输出;
getchar()相当于字符串中的scanf函数;
putchar()相当于字符串中的printf打印;
***************************************
通过该程序,我们可以得到的输出结果,空格照常打印,字母加1,即其下一位字母【但是当我们输出.的时候换成了/】
由程序可以看出:如果字符是空白,原样打印;否则,打印原字符在ASCII序列中的下一个字符;
只当它不为换行,我们可以解释为【当一行未结束】-【如果是空格则不变】--【如果是字符,那么获取下一个字符即ch+1】.
那么有没有办法将上面的程序【标点符号照样2打印呢?】
【答案是通过ctype.h系列的字符函数】;
【通过该头文件可以完好的保留了非字母字符,只转换字母】;
下面演示一遍
******************************
#include <stdio.h>
#include <ctype.h>
int main()
{
char ch;
ch=getchar();
while(ch!='\n')
{
if(isalpha(ch))
putchar(ch+1);
else
putchar(ch);
ch=getchar();
}
putchar('\n');
return 0;
}
**********************
通过程序我们可以看到使用了ctype.h的头文件;
然后调用其isalpha()函数进行条件的判断【表示参数是字母的话,返回值为真】;
通过这样,我们可以完好的表达了该程序除非字符以外,字符按照字符+1的操作打印出来。