【发布时间】:2019-07-31 23:24:13
【问题描述】:
我是编程新手,我看了一个 c 教程(大约 3 个小时),我立即编写了这段代码。现在一切正常,但我想创建某种循环,我会尽力解释我想要什么。
这是我写的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *characterName;
char *yes_no;
characterName = malloc(sizeof(char));
yes_no = malloc(sizeof(char));
printf("Enter you name: ");
scanf("%s", characterName);
printf("Are you sure[Yes/No]: ");
scanf("%s", yes_no);
if(strcmp(yes_no, "Yes") == 0 || strcmp(yes_no, "yes") == 0)
{
printf("Your name is %s", characterName);
}
else if(strcmp(yes_no, "No") == 0 || strcmp(yes_no, "no") == 0)
{
printf("Try again!");
}
else
{
printf("Unknown command!");
}
return 0;
}
它的作用基本上是要求您输入您的姓名,然后确认,如果您输入是或是,它将打印您的姓名,如果您输入否或否,它将再次打印,如果您输入除了是/是或否/否之外的其他内容,它将打印未知命令。现在我想知道的是,除非我输入“是”,否则我如何制作一个会一遍又一遍地重复的循环。 就像我输入 no 或 unknown 命令一样,我希望它要求我再次输入我的名字。我希望你能理解我想要做什么,并为我仍在学习的糟糕的英语感到抱歉:D。
【问题讨论】:
-
characterName = malloc(sizeof(char));您仅为零终止字符分配内存。yes或no字符串没有内存。没有内存可以读入名字。