c - 我的代码无法理解空格 (' ' )并将完成代码

标签 c

我正在编写一个将单词和句子翻译成莫尔斯电码的代码。它适用于单词,但当我想组成一个句子时,它会在第一个单词后自行关闭。

我尝试使用不同的延迟函数,将“”更改为“0\”,但它们不起作用

int main() {
    char Morse[999];

    printf("Enter anything you want to be translated to morse\n");
    scanf("%s", Morse);


for (int i = 0, length = strlen(Morse); i < length; i++)
    switch (Morse[i]) {
        case ' ':
            Sleep(600);
            break;
        case 'a':
            Beep(440, 150);
            Beep(440, 300);
            break;

我希望它在看到空格时有 600 毫秒的延迟

最佳答案

您应该使用 fgets 而不是 scanf 来获取句子(带空格的字符串)

int main() {
    char Morse[999];

    printf("Enter anything you want to be translated to morse\n");
    fgets(Morse, sizeof(Morse), stdin);


    for (int i = 0, length = strlen(Morse); i < length; i++)
        switch (Morse[i]) {
        case ' ':
            Sleep(600);
            break;
        case 'a':
            Beep(440, 150);
            Beep(440, 300);
            break;

希望它对您有用。

关于c - 我的代码无法理解空格 (' ' )并将完成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58607782/

相关文章:

c - 仅当元素不存在时才向 C 数组添加一个元素

c - "Unterminated string"在 Turbo C 编译器的字符串文字中包含引号

使用 Intel MKL 编译 C 代码 : ld: unknown option: --no-as-needed

c - 错误 : invalid operands to binary % when taking modulus of float

c++ - SQL 解析器库 - 从查询中获取表名

c++ - 如何去掉下面程序中的goto和flip

c - 是否可以挂载远程文件系统并打开/mmap/dev/mem?

c - 使用套接字读取 char* 时出现段错误

c - 为什么我们可以对 scanf 和 printf 使用 %d?

c - printf 编译时显示错误