C 如何为字符串赋值?
我所做的只是将这些字符串赋给enumdata类型值,但它不起作用。我已经在C中为枚举分配了字符串。我做错了什么C 如何为字符串赋值?,c,enums,C,Enums,我所做的只是将这些字符串赋给enumdata类型值,但它不起作用。我已经在C中为枚举分配了字符串。我做错了什么 #include <stdio.h> enum day{monday,tuesday,wednesday}; int main() { enum day pres; int n,ab; scanf("%s",&pres); scanf("%d",&ab); n=((ab%7)+pres); print("%
#include <stdio.h>
enum day{monday,tuesday,wednesday};
int main()
{
enum day pres;
int n,ab;
scanf("%s",&pres);
scanf("%d",&ab);
n=((ab%7)+pres);
print("%d",n);
return 0;
}
#包括
枚举日{星期一、星期二、星期三};
int main()
{
枚举日压力;
int n,ab;
scanf(“%s”和“pres”);
scanf(“%d”和&ab);
n=((ab%7)+pres);
打印(“%d”,n);
返回0;
}
我做错了什么
#include <stdio.h>
enum day{monday,tuesday,wednesday};
int main()
{
enum day pres;
int n,ab;
scanf("%s",&pres);
scanf("%d",&ab);
n=((ab%7)+pres);
print("%d",n);
return 0;
}
答案是——一切。每一行,绝对每一行都有一个错误或一个打字错误
teusday
应该是teusday
void main
应为int main
enum
变量声明在行尾需要分号
scanf
您根本无法将字符串写入枚举值
ab
未声明
n
未声明
print
函数不存在,printf
存在
在编写代码之前,先尝试学习更多的理论知识。读一本好的C语言书,其中有很多
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
enum DayOfWeek {
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, ErrDOW=-1
};
static const char *nameOfDOW[] = {
"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"
};
enum DayOfWeek strToDOW(const char *str);
int main(void){
char in_str[16];
enum DayOfWeek aDOW;
int wday, addDay, n;
printf("Please enter the name day of the week : ");
scanf(" %15s", in_str);
if(ErrDOW==(aDOW = strToDOW(in_str))){
printf("invalid name\n");
return EXIT_FAILURE;
}
printf("Please enter the number of days to add : ");
scanf("%d", &addDay);
n= (aDOW + addDay) % 7;
printf("%d\n", n);
printf("%c%s\n", toupper(nameOfDOW[n][0]), nameOfDOW[n]+1);
return EXIT_SUCCESS;
}
enum DayOfWeek strToDOW(const char *str){
char *s = strlwr(strdup(str));//note : strdup and strlwr are not standard.
int i, len = strlen(s);
for(i=Sunday; i<= Saturday; ++i){
if(3 == len){
if(strncmp(nameOfDOW[i], s, 3)==0)
break;
} else {
if(strcmp(nameOfDOW[i], s)==0)
break;
}
}
free(s);
if(i > Saturday)
return ErrDOW;
else
return i;
}
#包括
#包括
#包括
enum DayOfWeek{
星期日、星期一、星期二、星期三、星期四、星期五、星期六,ErrDOW=-1
};
静态常量字符*nameOfDOW[]={
“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”
};
enum DayOfWeek strtow(const char*str);
int main(void){
char in_str[16];
enum DayOfWeek aDOW;
int wday,addDay,n;
printf(“请输入一周中的日期:”);
scanf(“%15s”,in_str);
如果(ErrDOW==(aDOW=strToDOW(in_str))){
printf(“无效名称\n”);
返回退出失败;
}
printf(“请输入要添加的天数:”);
scanf(“%d”、&addDay);
n=(aDOW+addDay)%7;
printf(“%d\n”,n);
printf(“%c%s\n”,toupper(nameOfDOW[n][0]),nameOfDOW[n]+1);
返回退出成功;
}
enum DayOfWeek strTow(常量字符*str){
char*s=strlwr(strdup(str));//注意:strdup和strlwr不是标准的。
int i,len=strlen(s);
(i=星期日;i=星期六)
回报率;
其他的
返回i;
}
没有读这本书吗?你需要先学习
C
的基本知识。从这里开始,我的问题是,如何为字符串赋值,假设m输入为monday,ab为7,结果将为0,但它不是getingenum
s不是字符串,您所做的多少相当于const int monday=0,teusday=1,星期三=2代码>。您既没有声明ab
也没有声明n
,标准库中没有这样的print
功能。为什么不重新思考并重新阅读呢?谢谢你的回答,但我想知道代码,我也知道,我认为代码部分是主要的,但都集中在正常错误上……没有办法做你想做的事情。使用普通C字符串而不是枚举-values@chandubunnyfansasha.sochka列出的错误都不是“愚蠢的”。它们都是真正的错误,如果你甚至不想写一个没有“愚蠢”错误的程序,你就不值得帮助;通过使用它,将接受字符串名称,但不接受值,这是我在问如何使用的??我并不是在抱怨萨沙发布的错误。索奇卡安的错误是一个错误——这并不愚蠢