请问怎么能使输入的时候输回车键不计入字符串中呢?
题目:有一字符串,包含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,b,string;
gets(a);
scanf("%d",&m);
for(i=m-1;i<n;i++){
b = a;
j++;
}
puts(b);
}
请问怎么能使输入的时候输回车键不计入字符串中呢? 我运行时如果像样例那样输入,就运行错误
如果输入6之后不输回车直接输abcdef,这样就正确,所以第一种方法是不是把回车计入了输入的字符串中呢?这种情况怎么避免呢?
求大神解答,不胜感激! 用getchar函数,一个字符一个字符的读取输入,然后加一个判断——如果是回车符直接跳过 BngThea 发表于 2020-4-5 17:05
用getchar函数,一个字符一个字符的读取输入,然后加一个判断——如果是回车符直接跳过
请问加判断的代码怎么写呢?感谢! yuec 发表于 2020-4-5 17:09
请问加判断的代码怎么写呢?感谢!
ch=getchar();
if(ch=='\n')
//执行对应的操作 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,b,ch;
for(i=0;i<n;i++)
ch = getchar();
if(ch=='\n'){
scanf("%d",&m);
for(i=m-1;i<n;i++){
b = a;
j++;
}
puts(b);
}
}
请问你知道哪错了吗?感谢! yuec 发表于 2020-4-5 17:38
我改成这样还是不行:
#include
int main()
你要用循环去读取每一个字符,然后存放到a中,形如:
while(ch=getchar())
{
a=ch;
if (ch=='\n'){}
}
页:
[1]