#include <stdio.h> int main() { char s[10]; char *p, ch; scanf("%s\n", s); ch = getchar(); if (ch == '\n') ch = getchar(); //处理输入回车的情况 p = s; while(*p != '\0') { if(*p == ch) { printf("Yes"); break; } p++; } if(*p == '\0') { //遍历完所有字符都没有找到 printf("No"); } return 0; }
时间: 2024-03-14 20:44:08 浏览: 93
这是一份可以正确处理输入回车的代码,完整代码如下:
```c
#include <stdio.h>
int main() {
char s[10];
char *p, ch;
scanf("%s\n", s);
ch = getchar();
if (ch == '\n') ch = getchar(); //处理输入回车的情况
p = s;
while(*p != '\0') {
if(*p == ch) {
printf("Yes");
break;
}
p++;
}
if(*p == '\0') { //遍历完所有字符都没有找到
printf("No");
}
return 0;
}
```
相关问题
用c语言#include <stdio.h> int main() { char ch1[10],ch2[10]; gets(ch1); scanf("%s",ch2); printf("%s,%s",ch1,ch2); return 0; }
这是一段使用 C 语言编写的程序,其功能是从标准输入中获取两个字符串,分别存储到名为 ch1 和 ch2 的字符数组中,并将它们输出到标准输出中。具体解释如下:
1. `#include <stdio.h>`:引入标准输入输出库,使程序能够使用标准输入输出函数。
2. `int main() { ... }`:定义程序的主函数,程序从这里开始执行。
3. `char ch1[10],ch2[10];`:定义两个长度为 10 的字符数组 ch1 和 ch2,用于存储输入的两个字符串。
4. `gets(ch1);`:从标准输入中读取一行字符串,并将其存储到 ch1 中。这里使用 gets 函数,该函数能够读取包括空格在内的整行字符串。
5. `scanf("%s",ch2);`:从标准输入中读取一个字符串,该字符串不包括空格,读取的内容存储到 ch2 中。这里使用 scanf 函数,该函数能够读取格式化的输入,"%s" 表示读取一个字符串。
6. `printf("%s,%s",ch1,ch2);`:将 ch1 和 ch2 输出到标准输出中,中间以逗号分隔。这里使用 printf 函数,"%s" 表示输出一个字符串。
7. `return 0;`:程序执行完成,返回 0 表示正常结束。
#include <stdio.h> #include <string.h> int main() { int num,size,target=-1,max=0; scanf("%d",&num); char ch[40]; for(int i=0;i<num;i++){ scanf("%s",ch); size=strlen(ch); if(max==0){max=size;target=i;} else if(size>max){max=size;target=i;} } printf("%s",ch[target]); }
这段代码存在两个问题:
1. 变量`ch`的大小只有40个字符,如果输入的字符串长度超过40,就会导致程序崩溃。
2. 变量`target`的初值为-1,当输入的第一个字符串长度为0时,变量`target`的值仍然为-1,这可能导致程序输出错误的结果。
为了解决第一个问题,可以将变量`ch`定义为二维字符数组,第二维的大小可以根据需要设置得更大一些,例如:
```
char ch[num][100];
```
这样就可以避免输入字符串长度超过40的问题。
为了解决第二个问题,可以将变量`target`的初值设为0,这样就可以避免输入的第一个字符串长度为0时导致的问题。
修改后的代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
int num, size, target = 0, max = 0;
scanf("%d", &num);
char ch[num][100];
for (int i = 0; i < num; i++) {
scanf("%s", ch[i]);
size = strlen(ch[i]);
if (size > max) {
max = size;
target = i;
}
}
printf("%s", ch[target]);
return 0;
}
```
这样就可以避免输入字符串长度超过40和变量初值问题导致的错误。
阅读全文