gpt4 book ai didi

c - 从键盘读取单词并将其放入矩阵中

转载 作者:行者123 更新时间:2023-11-30 19:29:06 24 4
gpt4 key购买 nike

我必须从键盘上读取 5 个单词并将它们放入矩阵中。例如,如果我有单词 RED,则这些字母将在第一行的列之间拆分。 R E D 等等。

这是我的代码,但它在我扫描 5 个字母后退出

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char mat[3][3];

for(int i=0; i<2; i++)
for(int j=0;j<2;j++)
{
scanf("%s", &mat[i][j]);
}

for(int i=0; i<2; i++)
for(int j=0;j<2;j++)
{
printf("%s\t",mat[i][j]);
}

return 0;
}

最佳答案

由于您没有指定字符串的任何大小...我假设它们是任意长度...

// Takes input using the 'stdin' stream...
char* read_input(void)
{
char ch;
size_t len = 0;
size_t size = len + 2;
char* str = realloc(NULL, size);
if (!str)
return str;
while ((ch = fgetc(stdin)) != -1 && ch != '\n')
{
str[len++] = ch;
if (len == size)
{
str = realloc(str, size += 2);
if (!str)
return str;
}
}
str[len++] = '\0';
return realloc(str, len);
}

该函数将读取输入,现在我们还需要一个函数来检查字符串是否是有效的单词...即,它仅包含字母。 .

// Checks whether the specified string is alphabetic or not...
int is_alpha_string(char* str, char* err_msg)
{
for (unsigned i = 0u; i < strlen(str); i++)
if (!isalpha(str[i]))
{
fprintf(stderr, err_msg);
return 0;
}
return 1;
}

在此之后,只需执行:

// The 'main()' function...
int main(void)
{
char* matrix[5];
for (unsigned i = 0u; i < 5u; i++)
{
printf("Enter your word here: ");
matrix[i] = read_input();
i -= !is_alpha_string(matrix[i], "Error! Entered text is not a valid word!\n\n");
}
for (int i = 0; i < 5; i++)
printf("%s\n", matrix[i]);
return 0;
}

编辑: 并且不要忘记在顶部添加这些内容:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

关于c - 从键盘读取单词并将其放入矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248291/

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