我需要编码一个术语,告诉我"矩阵名称"有效或无效。
名称应仅包含大小字母。
但问题是,它的条件是"如果"总是告诉我name is invalid
,虽然不是。{
请帮我弄清楚我做错了什么。
以下是代码:
#include <stdio.h>
#include <string.h>
void main() {
int i;
char mtx1[10];
gets_s(mtx1_name, sizeof(mtx1_name));
for (i = 0; i < sizeof(mtx1_name); i++)
if ((mtx1_name[i]<'a' || mtx1_name[i]>'z') && (mtx1_name[i]<'A' || mtx1_name[i]>'Z') && mtx1_name[i]!='\0')
{
printf_s("Eroor: '%s' - illegal variable name! \n", mtx1_name);
i = sizeof(mtx1_name);
}
}
可以找到代码图像的链接
答案 0 :(得分:3)
多个问题:
main
的原型不是void main()
mtx1_name
,而不是mtx1
。gets_s()
<ctype.h>
以下是修改后的版本:
#include <stdio.h>
#include <string.h>
int main() {
char mtx1_name[100];
if (gets_s(mtx1_name, sizeof mtx1_name)) {
for (int i = 0; mtx1_name[i]; i++) {
if (!((mtx1_name[i] >= 'a' && mtx1_name[i] <= 'z') ||
(mtx1_name[i] >= 'A' && mtx1_name[i] <= 'Z'))) {
printf_s("Error: '%s' - illegal variable name! \n", mtx1_name);
break;
}
}
}
return 0;
}
这是一个更便携的版本:
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main() {
char mtx1_name[100];
if (gets_s(mtx1_name, sizeof mtx1_name)) {
for (int i = 0; mtx1_name[i]; i++) {
if (!isalpha((unsigned char)mtx1_name[i])) {
printf_s("Error: '%s' - illegal variable name!\n", mtx1_name);
break;
}
}
}
return 0;
}