【发布时间】:2020-07-19 13:55:06
【问题描述】:
代码本身是关于输入一个字符串和一个字符,程序打印出该字符在特定字符串中的位置。
我想添加的是在输入“end”这个词时立即退出程序,使用strcmp()。
目前的问题是,虽然我输入了“end”这个词,但我需要输入一个字符才能让程序结束。
我想要的是程序在输入“end”后立即结束。
#include <stdio.h>
#include <string.h>
void input(char*, char*);
int strcheck(char*, char);
int main()
{
int count;
char str[100], ch;
while (1) {
input(str, &ch);
if (strcmp(str, "end") == 0) { //I'm guessing this part is the problem
break;
}
else {
count = strcheck(str, ch);
if (count == -1) {
printf("\"%s\" string doesn't have '%c'. \n\n", str, ch);
}
else {
printf("\"%s\" string has '%c' in position number %d .\n\n", str, ch, count + 1);
}
}
}
return 0;
}
void input(char* strp, char* chp)
{
printf("# enter string : ");
scanf("%s", strp);
printf("# enter character : ");
scanf(" %c", chp);
return;
}
int strcheck(char* strp, char chp)
{
int i;
int size = strlen(strp);
for (i = 0; i < size; i++) {
if (strp[i] == chp) {
return i;
}
}
return -1;
}
这段代码的结果是……
# enter string : end
# enter character : a
但我想要的是……
# enter string : end //--> exit immediately
【问题讨论】:
-
所以您希望您的程序在输入
end后立即存在?或者它应该在输入end+ Enter 后退出?如果输入是dividend怎么办? -
所以我要做的是输入
end+ Enter,拜托:)