gpt4 book ai didi

无法打印字符串数组而不获取垃圾字符

转载 作者:行者123 更新时间:2023-11-30 18:43:40 26 4
gpt4 key购买 nike

int main(int argc, char** argv) {
char *test[5][20];
char *input[20];
int i;
for(i=0;i<5;i++){

printf("enter> ");
fflush ( stdout );
fgets(input,20,stdin);
*test[i] = *input;
}

for(i=0;i<5;i++)
printf("%d | %s\n",i,test[i]);
return 0;
}

输出:

enter> pwd

enter> pathd

enter> ls

enter> echo $path

enter> pwd 0 | pwd

1 | path▒] a▒▒a▒▒#a▒▒ 2 | ls

3 | echo▒▒( 4 | pwd

Press [Enter] to close the terminal ...

我还需要能够读取包含空格的输入。谢谢!

最佳答案

使用memcpy()。并且您需要删除尾随换行符。这里:

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

void chopnl(char *s) { //strip '\n'
s[strcspn(s, "\n")] = '\0';
}

int main() {
char test[5][20];
char input[20];
int i;
for(i=0;i<5;i++){
printf("enter> ");
fflush ( stdout );
fgets(input, 20, stdin);
chopnl(input);
memcpy(test[i], input, strlen(input)+1);//test[i] = input;
}
for(i=0;i<5;i++)
printf("%d | %s\n",i,test[i]);
return 0;
}

关于无法打印字符串数组而不获取垃圾字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3903059/

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