学习电脑 发表于 2016-9-7 11:53:31

C语言循环

        do
        {
                printf("姓名:");
                scanf("%s", p1->name);
                if (!strcmp((p1->name), "ok"))
                        break;
               
        }while(1);
      

为什么输入ok就不会跳出循坏?到底哪里有问题啊?

房间里的大象 发表于 2016-9-7 15:30:18

完整的代码呢

joker11111 发表于 2016-9-7 17:19:36

本帖最后由 joker11111 于 2016-9-7 17:25 编辑

表示可以跳出{:10_256:}
#include <stdio.h>
#include <stdlib.h>

int main()
{
        struct stu
        {
                int num;
                char name;
        }*p1;

        p1 = (struct stu *)malloc( sizeof(struct stu) );

        do
        {
                printf("姓名:");
                scanf("%s", p1->name);
                if (!strcmp((p1->name), "ok"))
                {
                        printf("p1->name = \"ok\" 为真准备跳出循环...\n");
                        break;
                }
        }while(1);

        return 0;
}


aclii 发表于 2016-9-22 22:11:47

{:10_257:}{:10_257:}楼上在逗我,那个*p1是别名好么??那个不是指针,不是指针,不是指针
{:10_269:}{:10_269:}

aclii 发表于 2016-9-22 22:14:25

{:10_250:}{:10_250:}LZ,应该是name是字符数组,他在OK后面还会添加一个\0,对比的时候\0也算的{:10_250:}{:10_250:}
页: [1]
查看完整版本: C语言循环