【发布时间】:2017-09-13 06:13:14
【问题描述】:
新手程序员学习 C,我在尝试使用 strcmp 运行 for 循环时遇到此“分段错误(核心转储)”错误。我已经看到有关 strcmp 类似问题的问题,但它们似乎并没有解决我的问题。这是我编写的程序。
#include<stdio.h>
#include<string.h>
int main() {
char ftpstring[15];
printf("\nEnter valid ftp command > ");
fgets(ftpstring,15,stdin);
const char* ftp[] = { "ascii", "recv", "send", "rmdir", "mkdir" , "pwd", "ls", "cd", "status", "quit" };
for ( int i = 0; i <= 10; i++ ) {
int comparison;
comparison = strcmp(ftpstring, ftp[i]);
if (comparison == 0 ) {
printf("%s is a valid ftp command.", ftpstring);
break;
}
if(i == 10) {
printf("%s is NOT a valid ftp command.", ftpstring);
}
}
}
如您所见,该程序尝试读取用户输入以确定它是否匹配预定义的有效 ftp 命令之一,然后返回是否匹配。
【问题讨论】:
-
for ( int i = 0; i <= 10; i++ )应该是for ( int i = 0; i < 10; i++ )
标签: c segmentation-fault strcmp