qq_32653757 2015-11-21 05:52 采纳率: 76.9%
浏览 3630
已结题

C语言问题,关于如何把window下编程\r\n变成Linux中的换行\n

本机运行正确, 但是wrong answer。 个人认为应该是\r\n的问题,求大神指点
C语言问题,关于如何把window下编程\r\n变成Linux中的换行\n

Description
给出一个字符串str和一个字符ch,如果字符串str含有字符ch,就从该字符首次出现的位置开始,输出字符串中的字符至结束。如果字符串str不含字符ch,则输出"Not Found"。(注意首字母大写)

Input
多测试用例。

每个测试用例占2行,第一行是字符串str,第二行是字符ch。字符串长度不超过1000。

Output
为每个测试用例输出一行:所求结果。

Sample Input
program
r
school
a

Sample Output
rogram
Not Found

Hint
windows与linux在换行这点上有所不同:

windows 基本上行末用2个符号 "\r"(回车符) 和 "\n"(换行符) 来表示下一行;

而Linux 只用一个 "\n" 来表示下一行。

所以,windows下编程有时要用getchar()来读走那个多余的"\r"。

本OJ服务器的OS是Linux

#include
int main(void){
char c[1005], cha, ch, *p;
int xia, sum;
while(gets(c)!=0){
scanf("%c", &ch);
cha=getchar();
sum=0;

for(p=c; *p!='\0'; p++)
if(*p==ch)
{ sum++; break; }

if(sum==0)
printf("Not Found\n");
else
{
for(; *p!='\0'; p++)
printf("%c", *p);
printf("\n");
}
}
return 0;
}

  • 写回答

5条回答 默认 最新

  • 关注

    if(sum==0)
    printf("Not Found\n");
    else
    {
    for(; *p!='\0'; p++)
    printf("%c", *p);
    printf("\n");
    }
    这段代码改一下即可:
    if(sum==0)
    printf("Not Found\n");
    else
    {
    for(; *p!='\0'; p++){
    if(*p == '\r')
    continue;
    printf("%c", *p);

    printf("\n");
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题