我给出了将输入的字符串转换为某些条件的问题,例如:
I = 1
R = 2
E = 3
A = 4
S = 5
G = 6
T = 7
B = 8
P = 9
O = 0
所有输入的字符串必须是大写字符串。
这是我的代码:
#include<stdio.h>
#include<string.h>
int main(){
char a[100];
int i;
scanf("%[^\n]s", a);
strupr(a);
int length=strlen(a);
getchar();
for(i=0;i<length;i++){
if(a[i]=='I'){
a[i]='1';
}
else if(a[i]=='R'){
a[i]='2';
}
else if(a[i]=='E'){
a[i]='3';
a[i]='4';
}
else if(a[i]=='O'){
a[i]='O';
}
else if(a[i]=='S'){
a[i]='5';
}
else if(a[i]=='G'){
a[i]='6';
}
else if(a[i]=='A'){
}
else if(a[i]=='T'){
a[i]='7';
}
else if(a[i]=='B'){
a[i]='8';
}
else if(a[i]=='P'){
a[i]='9';
}
}
printf("%s\n", a);
return 0;
}
但是在线法官一直在说编译器错误:
编译失败,退出代码为1,编译器输出:secet.c:在 函数'main':secet.c:11:3:警告:隐式声明 函数'strupr'[-Wimplicit函数声明] strupr(a); ^ secet.c:8:3:警告:忽略'scanf'的返回值,用 属性warn_unused_result [-Wunused-result] scanf(“%[^ \ n] s”,a); ^ /tmp/ccWRs5uD.o:在函数
main': secet.c:(.text.startup+0x73): undefined reference to
strupr'collect2中:错误:ld返回1退出 状态
对不起,虽然很明显,但我不知道,我是编程新手。但是在我的编译器(dev-c ++)中,它运行良好。