|
5鱼币
本帖最后由 李京 于 2021-2-2 22:23 编辑
这是我的程序,只要在字符中间插入空格就会出问题,但是我不知道为什么
#include <stdio.h>
void Str(char *str,int i);
void Str(char *str,int i)//反向输出函数 i是用来存放到第几个字符了
{
if(str[i]!='!')//判断是否识别到 '!'
{
Str(str,i+1);
}
else
{
printf("反向输出:");
}
printf("%c",str[i]);
}
int main(void)
{
char str[1000];//存放输入的字符串
printf("请输入一行以感叹号结尾的英文:");
scanf("%s",str);
Str(str,0);
printf("\n");
return 0;
}
具体问题是带你学C带你飞的s1e34动动手的第0题
S1E34:递归 | 课后测试题及答案
https://fishc.com.cn/thread-79025-1-1.html
(出处: 鱼C论坛)
scanf函数在输入字符串时遇到空格自动结束,换成gets或者fgets就好了
- #include <stdio.h>
- void Str(char *str,int i);
- void Str(char *str,int i)//反向输出函数 i是用来存放到第几个字符了
- {
- if(*(str+i)!='!')//判断是否识别到 '!'
- {
- Str(str,i+1);
- }
- else
- {
- printf("反向输出:");
- }
- printf("%c",*(str+i));
- }
- int main(void)
- {
- char str[1000];//存放输入的字符串
- printf("请输入一行以感叹号结尾的英文:");
- gets(str);
- Str(str,0);
- printf("\n");
- return 0;
- }
复制代码
|
最佳答案
查看完整内容
scanf函数在输入字符串时遇到空格自动结束,换成gets或者fgets就好了
|