gpt4 book ai didi

C - 添加二维字符数组的元素

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

我正在尝试添加二维字符数组的行和列。这样他们就形成了一个单词。我知道如何添加 2D int 数组的元素,并尝试在这里实现类似的解决方案。但它不起作用。

Example input:
a b c d
e f g h
i j k l

Example Output:
Row 1 word = abcd
Row 2 word = efgh
Row 3 word = ijkl

这是代码:

#include <stdio.h>

int main()
{
unsigned int size;
char wordR;

printf("Enter size:\n");
scanf("%d",&size);

char word[size][size];

//Entering the matrix
for (int k = 0; k < (size); ++k){
for (int j = 0; j < (size); ++j){
printf("Enter letter: ");
scanf(" %c",&word[k][j]);
}
}

for (int k = 0; k < size; ++k){
for(int j = 0; j < size; ++j){
printf(" %c",word[k][j]);
}
printf("\n");
}

//Adding row elements
for(k = 0; k < size; ++k){
for(p = 0; p < size; ++p){
wordR += size[k][p];
}
printf("Word of the %i row is = %c\n",k,wordR);
}
}

最佳答案

这是精炼的代码:

#include <stdio.h>

int main(void)
{
unsigned int size;

printf("Enter size:\n");
scanf("%u", &size); // size is unsigned, so use %u.

char word[size][size];
char wordR[size + 1]; // +1 for the terminating '\0'
wordR[size] = '\0'; // wordR[size] will always be '\0'.

int i, j;

//Entering the matrix
for (i = 0; i < size; ++i){
for (j = 0; j < (size); ++j){
printf("Enter letter: ");
scanf(" %c",&word[i][j]);
}
}

for (i = 0; i < size; ++i){
for(int j = 0; j < size; ++j){
printf(" %c",word[i][j]);
}
printf("\n");
}

//Adding row elements
for(i = 0; i < size; ++i){
for(j = 0; j < size; ++j){
wordR[j] = word[i][j];
}
printf("Word of the %i row is = %s\n", i, wordR);
}
}

这是声明

wordR += size[k][p];

这会阻止您的代码正常工作。也许你认为这会神奇地连接一个字符串,但不幸的是,它只是将 size[k] 中字符的 ascii 值相加。 。无论如何,wordR定义为char在你的代码中,单个char怎么能包含整个字符串(即 char 的数组)?

您的代码中还存在一些小问题,我已对其进行了一些更改。详情请参阅评论。

关于C - 添加二维字符数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35981685/

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