关于对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
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯