永发信息网

关于对C语言 WERTYU,UVa10082的问题 为什么有两个\\呢

答案:2  悬赏:0  手机版
解决时间 2021-01-27 09:11
  • 提问者网友:动次大次蹦擦擦
  • 2021-01-26 15:13
#include
char s[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
int main(){
int i,c;
while((c=getchar()) !=EOF){
for (i=1;s[i] && s[i]!=c;i++);
if (s[i]) putchar(s[i-1]);
else putchar(c); }
return 0;
}
最佳答案
  • 五星知识达人网友:摆渡翁
  • 2021-01-26 15:21
一个反斜杠是转义字符,两个反斜杠表示输出一个反斜杠。
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-01-26 16:54
#include char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./"; int main() { int i,c; while((c=getchar())!=eof)//一个个字符读取直到结束 { for(i=1;s[i]&&s[i]!=c;i++);//请问此处判断s[i]是什么意思?有什么情况s[i]会出现false? //检查字符在字符串s中是否存在,并定位他的位置 if(s[i])//就是判断字符存不存在于字符串s里,不存在的话s[i]就为'\0'即false putchar(s[i-1]);//这个我知道是输出字母左移一格,可是这个判断条件s[i]是什么意思? //存在左移一格 else putchar(c);//为什么会有这个else?有什么情况会需要直接输出c的? //不存在直接输出 } return 0; //s[i]是什么意思: //s是一个指针变量,如果你不了解什么是指针 //他等价于一个数组 //即char *s="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./"; //等价于 char s[]="1234567890-=qwertyuiop[]asdfghjkl;'\\zxcvbnm,./"; //s[i]就相当于取数组里相对应的元素的值 //有什么情况s[i]会出现false: //因为字符串以'\0'(ascii是0,而0为false)结束,也就是说当a[i]=='\0'就为false }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯