用C语言编写的morseEncoder程序,但有逻辑错误

时间:2018-12-03 14:46:36

标签: c morse-code

我用C语言编写了一个“摩尔斯编码器”程序。我可以执行代码,没有错误,但有逻辑错误。它没有给出我想要的。用户以字符串形式输入内容,然后按Enter键,但不会发生输出。

这是我的代码。看看它。也许您注意到我做错了。

FooImpl2

我认为我在将const char *转换为char或反之亦然的过程中做错了事。

3 个答案:

答案 0 :(得分:4)

const char *phrase;

phrase尚未初始化,所以当您这样做

scanf("%s",phrase);

您正在写入内存中的某个随机位置,从而导致不确定的行为。

您需要首先为字符串分配空间。要么作为数组

char phrase[100];

或通过分配内存

char *phrase=malloc(100);

声明中的const限定符也没有多大意义,因为您在将内容传递给scanf时更改了内容。将其放在函数上很好,因为函数不会更改值。

答案 1 :(得分:0)

我听了所有答案,发现我发布此问题时没有考虑。我犯的错误真是愚蠢。现在,我已经修复了代码,但是只剩下一件事了,这就是循环部分。该程序仅返回第一个字母。尽管我仍在尝试,但我无法不幸地纠正它。如果有人可以提供帮助,我将不胜感激。

答案 2 :(得分:0)

问题是我要求输入字符。

scanf("%c",phrase);

因此,即使用户输入了一个字符串,它也只保存了第一个字符。更改它以请求字符串可以解决逻辑错误。

scanf("%s",phrase);