我是新手。 谁能帮我创建这个程序? 我不知道如何制作这个节目。 这是该计划的描述。
创建了一个具有以下功能的程序。
■功能
首先输入参考字符串。
然后,检查它们是否与标准字符串
匹配计算找到匹配项的次数,并显示
如果找不到匹配项,则显示错误。
当我们输入字符串时 “结束”该计划将被关闭。
■注意事项·使用 strlen 功能首先,然后使用 strcmp 功能。
■运行示例(参考)
请输入参考字符串:call
完成后请输入[end]。
呼叫
匹配。一旦
呼叫
匹配。两次
ccccccccccc
输入错误
呼叫
匹配。三次
端
退出
我试过制作一个 我就这样做了
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main ()
{
while(1000)
{
char call[]="call";
char word[80];
printf ("please type call: ");
gets (word);
if(strcmp(word,"call")==0)
puts("matched!\n");
else
puts("error\n");
}
getch();
return 0;
}
答案 0 :(得分:0)
您的第一个错误是使用strcmp()错误。 strcmp()与NULL无关。它返回一个负数,一个正数或零。
此外,您对“错误,请再试一次”的测试毫无意义。
答案 1 :(得分:0)
#include <stdio.h>
#include <string.h>
int main (void){
char criteria[] = "call";
char *mes[] = { "Many times", "Once", "Twice", "Three times" };
char word[80];
int match_count =0, not_end=1;
do{
printf(
"Please type the reference string.\n"
"Please type [end] when you are finished.\n"
">");
fgets(word, sizeof(word), stdin);
int len = strlen(word);
if(word[len-1]=='\n')
word[--len]='\0';
if(strcmp(word, criteria)==0){
if(++match_count > 3)
printf("Matched. %s(%d)\n", *mes, match_count);
else
printf("Matched. %s\n", mes[match_count]);
} else if(not_end=strcmp(word, "end"))
printf("Input error\n");
}while(not_end);
printf("Bye!\n");
return 0;
}