鱼C论坛

 找回密码
 立即注册
查看: 2298|回复: 6

请问怎么能使输入的时候输回车键不计入字符串中呢?

[复制链接]
发表于 2020-4-5 16:42:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:有一字符串,包含n个字符。写一函数,将此字符串中从第m个字符开始的全部字符复制成为另一个字符串。
输入
数字n 一行字符串 数字m
输出
从m开始的子串
样例输入
6
abcdef
3
样例输出
cdef


我的答案:
#include <stdio.h>
int main()
{
        int n,m,i;
        int j=0;
        scanf("%d",&n);
        char a[50],b[50],string;
        gets(a);
        scanf("%d",&m);
        for(i=m-1;i<n;i++){
        b[j] = a[i];
        j++;
        }
        puts(b);
}

请问怎么能使输入的时候输回车键不计入字符串中呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-5 17:01:24 | 显示全部楼层
我运行时如果像样例那样输入,就运行错误
如果输入6之后不输回车直接输abcdef,这样就正确,所以第一种方法是不是把回车计入了输入的字符串中呢?这种情况怎么避免呢?
求大神解答,不胜感激!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 17:05:43 | 显示全部楼层
用getchar函数,一个字符一个字符的读取输入,然后加一个判断——如果是回车符直接跳过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 17:09:59 | 显示全部楼层
BngThea 发表于 2020-4-5 17:05
用getchar函数,一个字符一个字符的读取输入,然后加一个判断——如果是回车符直接跳过

请问加判断的代码怎么写呢?感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 17:15:51 | 显示全部楼层
yuec 发表于 2020-4-5 17:09
请问加判断的代码怎么写呢?感谢!

ch=getchar();
if(ch=='\n')
//执行对应的操作
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-5 17:38:01 | 显示全部楼层
BngThea 发表于 2020-4-5 17:15
ch=getchar();
if(ch=='\n')
//执行对应的操作

我改成这样还是不行:
#include <stdio.h>
int main()
{
        int n,m,i;
        int j=0;
        scanf("%d",&n);
        char a[50],b[50],ch;
        for(i=0;i<n;i++)
        ch = getchar();       
        if(ch=='\n'){
        scanf("%d",&m);
        for(i=m-1;i<n;i++){
        b[j] = a[i];
        j++;
        }
        puts(b);
        }
}
请问你知道哪错了吗?感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-5 17:42:46 | 显示全部楼层
yuec 发表于 2020-4-5 17:38
我改成这样还是不行:
#include
int main()

你要用循环去读取每一个字符,然后存放到a中,形如:
while(ch=getchar())
{
    a[i]=ch;
    if (ch=='\n'){}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 12:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表