【发布时间】:2018-06-27 20:42:43
【问题描述】:
我仍然是制作函数和 C 编程的初学者。 我正在尝试制作一个将其转换为大写的函数,但似乎我在指针处搞砸了(?)
#include <stdio.h>
void mytoupper(char *s[]) {
int i = 0;
while (s[i] != '\0') {
if (s[i] >= 'a' && s[i] <= 'z') {
s[i] = s[i] - 32;
}
i++;
}
return s;
}
int main(void) {
char s[32];
printf("Insert string:");
printf("%s", s);
printf("%s", mytoupper(s[32]));
return 0;
}
【问题讨论】:
-
你可能想
scanf而不是printf("%s", s); -
代码中的错字:
printf("%s", s);toscanf("%s", s);,不管其他缺陷。 -
mytoupper(s[32])->mytoupper(s) -
void mytoupper(char * s[])必须是void mytoupper(char *s)或void mytoupper(char s[])。 -
... 它不应该返回任何东西。第二次打破
printf("%s", mytoupper(s[32]));行。