商店&a​​mp;在C

时间:2017-11-22 06:49:15

标签: c arrays

我试图显示并打印用户的一个单词并将其存储到我的数组中,该数组称为

char word[20]

但我遇到了麻烦。我知道我们使用“for循环”将其扫描到数组中,但我一直在圈子里,我相信问题出在i < 20上。 我对此进行了研究,发现对此的答案非常有经验,我需要一种非常基本的方法来做到这一点而不需要额外的东西。所以我想要的是从用户那里得到消息,存储它并将其打印到屏幕上。

没有经验丰富的代码,有人可以提供帮助吗?

C中的代码

char getWord(char word[]);
int main()
{   
    char word[20];  
    getWord(word);

    return 0;
}

char getWord(char word[])
{ 
    int i;
    printf("Enter a word: ");
    for (i = 0; i < 20; i++) 
    { 
        scanf(" %c", &word[i]);
    }

    return word;
}

3 个答案:

答案 0 :(得分:6)

你想要的只是

#include <stdio.h>

int main() {
    char word[20];
    scanf("%s", word);    // Read and store
    printf("%s\n", word);    // Print
    return 0;
}

答案 1 :(得分:0)

您可以使用fgets和puts来读取和写入字符串。

#include<stdio.h>
#define MAX 20

int main()
{
    int ar[MAX], i, count;
    fgets(ar, MAX, stdin);  //it will accept whitespaces as well
    puts(ar);            //displaying entered string
    return;
}

答案 2 :(得分:-3)

如果你想通过字符阅读,结尾字符应该设置为空字符,因为它是字符串。

char getWord(char word[]);
int main() 
{
    char word[20]
    getWord(word);

    printf("%s\n", word);
    return 0;
}

char getWord(char word[]) 
{
    int i;
    char c;
    printf("Enter a word: ");
    for (i = 0; i < 19; i++)
    {
        scanf("%c", &c);
        if ( c == '\n' )
            break;
        word[i]=c;
    }

    word[i]='\0';
    return word;
}