如果带有char的语句在C中不起作用
发布时间:2020-12-16 10:14:02 所属栏目:百科 来源:网络整理
导读:在大多数情况下,一切都正常,它可以构建无错误.但是,当我尝试运行它时,它似乎崩溃了.更具体地说,每当我启动代码并按“a”或“b”时,程序就会崩溃.有人能告诉我如何解决这个问题吗? #include stdio.h#include string.hint top=-1;int word;char stack_string[
在大多数情况下,一切都正常,它可以构建无错误.但是,当我尝试运行它时,它似乎崩溃了.更具体地说,每当我启动代码并按“a”或“b”时,程序就会崩溃.有人能告诉我如何解决这个问题吗?
#include <stdio.h> #include <string.h> int top=-1; int word; char stack_string[100]; void push(char word); char pop(void); int main() { char input; char str[100]; int i; printf("press [a] for palindrome check,[b] for string reversal:"); scanf("%s",input); if (input == 'b'){ printf("Input a string: "); scanf("%[^n]s",str); for(i=0;i<strlen(str);i++) push(str[i]); for(i=0;i<strlen(str);i++) str[i]=pop(); printf("Reversed String is: %sn",str); } else if(input == 'a'){ char str[100]; int count = 0; printf("Input a string: "); scanf("%[^n]s",str); for (i = 0; i < strlen(str); i++) { push(str[i]); } for (i = 0; i < strlen(str); i++) { if (str[i]==pop()) count++; } if (count == strlen(str)) printf("%s is a palindromen",str); else printf("%s is not a palindromen",str); } return 0; } void push(char word) { top=top+1; stack_string[top]=word; } char pop() { word = stack_string[top]; top=top-1; return word; } 解决方法
主要问题是输入流
对于scanf中的单个字符输入 我们使用scanf(“%c”,& input); 但对于我们使用的整个非空格字符/字符串数组 scanf(“%s”,str); for string包含除新行之外的空格 gets_s(str,sizeof(str)); 为你的情况 更正以下代码 scanf( "%s",input); 至 scanf(“%c”,& input); 快乐的编码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 原则&模式|理解DIP、IoC、DI以及IoC容器
- Jedis使用总结【pipeline】【分布式的id生成器】
- 我可以暂时禁用oracle存储过程中的触发器吗?
- Swift4 'substring(to:)' is deprecated
- ruby-on-rails – wicked_pdf,wkhtmltopdf在Hero
- 事件 – 从非托管C/C++函数在C/C++LI中触发事件
- entity-framework – 如何使用Entity Framework
- win10 oracle11g彻底删除并重装教程
- 如何制作flash cs3,actionscript将事件发送到jav
- U-Boot工作过程++
热点阅读