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

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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)