gpt4 book ai didi

C 编程 : From string to array

转载 作者:行者123 更新时间:2023-11-30 18:20:32 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,从用户那里获取字符串并将其存储在数组中。程序不应允许存储超过五个名称,每个名称不得超过十个字符。我能够编译这个程序,但是当我运行它并选择选项“1”时,出现错误“段错误(核心转储)”。该程序还应显示选项“2”下的名称列表。 (我想我必须将大部分代码放入 do-while 循环中,该循环运行的时间只要 iSelect != 3 即可。)

我在这里做错了什么?

代码是:

#include <stdio.h>

main() {
char cList[20][5];
char string[10];
int iNum = 0;
int iSelect = 0;
int i = 0;
int j = 0;
int k = 0;

printf("\n\n*** Friend List ***\n\nWhat will you do?\n\n1. Write a friends name in the list.\n2. Print out the names in the list.\n3. Quit\n---> ");
scanf("%d ", iSelect);

switch(iSelect) {
case 1:
// printf("\n\nWrite name nr %d (max 10 characters): \n", iNum);
scanf(" %s", &string);
for(i = 0 ; i < 10 ; i++) {
cList[i][iNum] = string[i];
}
iNum++;
break;

case 2:
for(j = 0 ; j <= iNum ; j++) {
for(k = 0 ; k < 10 ; k++) {
printf("%c", cList[k][j]);
}
}
break;
}

} //End of main()-function

最佳答案

scanf("%d ", iSelect);

应该是

scanf("%d ", &iSelect);

在这种情况下,scanf 需要一个指向 int 的指针,而不是 int!

关于C 编程 : From string to array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853109/

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