我的代码无法理解空格(''),并且会完成代码

时间:2019-10-29 12:47:44

标签: 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毫秒的延迟

1 个答案:

答案 0 :(得分:0)

您应该使用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;

希望它对您有用。