gpt4 book ai didi

c - 如果带有 char 的语句在 C 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 15:50:04 24 4
gpt4 key购买 nike

在大多数情况下,一切正常,并且能够毫无错误地构建。但是,当我尝试运行它时,它似乎崩溃了。更具体地说,每当我启动我的代码并按“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: %s\n",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 palindrome\n", str);
else
printf("%s is not a palindrome\n", 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);

对于字符串包含除新行之外的空格

gets_s( str, sizeof( str ) ) ;

针对您的情况

修改以下代码

scanf( "%s", input);

scanf( "%c", &input);

快乐编码

关于c - 如果带有 char 的语句在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43750880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com