从键盘任意输入一个字符串(字符串可以有空格), 在给定的一组字符串中寻找该输入字符串, 若找到,则打印该字符串,否则打印"Not find!"。每日一题--20200418--(补交)

从键盘任意输入一个字符串(字符串可以有空格), 在给定的一组字符串中寻找该输入字符串, 若找到,则打印该字符串,否则打印"Not find!"。

对应标号注释在下面

#include 
#include 
int main()
{
    int i=0, findFlag = 1;//————————————1
    char x[50];
    char *str[]={ "Pascal","Basic","Fortran", "Java","Visual C", "Visual Basic" };
    
    printf("Input string:\n");
    gets(x);
    
    while (i < 6 && findFlag)
    {
        //int a =strcmp(x, str[i]);————————————2
        if (strcmp(x, str[i])==0)//只要有数字,就会变成进去————————————3—————————————4
        {
            findFlag = 0;
        }
        i++;
    }
    if (!findFlag)
    {
        printf("%s\n",x);
    }
    else
    {
        printf("Not find!\n");
    }
    
}

1
flag我很少用这种方式。
2
strcmp函数:
在string这个头文件里面,通过比较相应位置的字符ascall码大小来比较字符串:
· srcmp(字符串1,字符串2)
· 从第一个字符开始比较,如果到最后两个字符串完全相同,则strcmp()函数输出的值为0;
· 若开始出现不同的字符,根据这个字符ASCII码进行比较
大于 0 —> 1 的ascall码大于2;
反之,输出值 小于 0;

3
只有完全相等等于零才可以进入块语句,容易忽略非零就可以进入if语句

4

if语句容易忘记的地方 —> 条件为假或者表达式为零,就不进入块语句

#include 
int main( )
{
    if (0) {
        printf("hanhan\n");
    }
    if (1) {
        printf("ringt\n");
    }
}

或者

#include 
int main( )
{
    if (-1) {
        printf("hanhan\n");
    }
    if (1) {
        printf("ringt\n");
    }
}

结果:

ringt
Program ended with exit code: 0

或者

hanhan
ringt
Program ended with exit code: 0

你可能感兴趣的:(c语言每日一道练习题,c语言题)