已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
昨天关门了。
Improve this question
我必须将流输入的结果字符串复制到二维数组的字符串中。是否有可能做到这一点?我的代码中有什么问题?
任务是获取char()字符串并将其放入二维数组中
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *arr = NULL;
char string[50];
char sym;
int counter = 0;
int counter_str = 0;
int i = 0;
while((sym = getchar()) != EOF)
{
if((sym != ' ') && (sym != ('\t') && (sym != '\n'))){
string[counter] = sym;
counter += 1;
}
if(sym == '\n'){
string[counter] = sym;
counter += 1;
counter_str += 1;
string[counter] = '\0';
arr = (char*) realloc(arr, counter_str * sizeof(char));
arr[counter_str - 1] = malloc(1 + strlen(string));
strcpy(arr[counter_str - 1], string);
counter = 0;
}
}
}
1条答案
按热度按时间cbjzeqam1#
char *arr
是一个字符的指针,而不是你所想的二维数组。getchar()
会传回整数,而EOF
通常会定义为-1
。如果char
是signed
或unsigned
,则会实作定义。和运行示例:
除非你非常关心如何容纳尽可能多的非空格和非制表符字符,否则直接读取然后剥离字符串可能会更清楚:
特别是如果你可以限制字符串的数目(
N
):