|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
int main(int argc, char *argv[]){
char ch[100],c;
int i,flag=1;
while(flag){ //这个while循环在,输入Y后怎么下面不让输入新的字符串了??
printf("请输入一个字符串:\n");
i=0;
while((c=getchar())!='\n'){
ch[i]=c;
i++;
}
ch[i]='\0';
printf("%s\n",ch);
for(i=0;ch[i]!='\0';i++){
if(ch[i]>='A'&&ch[i]<='Z') ch[i]=26-(ch[i]-'A'+1)+'A';
else if(ch[i]>='a'&&ch[i]<='z') ch[i]=26-(ch[i]-'a'+1)+'a';
}
printf("转换结果为:\n");
printf("%s\n",ch);
printf("continue or not(Y/N)?:\n");
c=getchar();
if(c=='n'||c=='N')
flag=0;
}
return 0;
}
要把输入缓冲buffer里面的数据清干净,下面的程序是修改之后的,可以解决你的问题。请注意fflush的使用
#include <stdio.h>
int main(int argc, char *argv[]){
char ch[100],c;
int i,flag=1;
while(flag){ //这个while循环在,输入Y后怎么下面不让输入新的字符串了??
printf("请输入一个字符串:");
i=0;
fflush(stdin);
while((c=getchar())!='\n'){
ch[i]=c;
i++;
}
ch[i]='\0';
printf("%s\n",ch);
for(i=0;ch[i]!='\0';i++){
if(ch[i]>='A'&&ch[i]<='Z') ch[i]=26-(ch[i]-'A'+1)+'A';
else if(ch[i]>='a'&&ch[i]<='z') ch[i]=26-(ch[i]-'a'+1)+'a';
}
printf("转换结果为:\n");
printf("%s\n",ch);
printf("continue or not(Y/N)?:");
c=getchar();
if(c=='n'||c=='N')
flag=0;
}
return 0;
}
|
|