0
私はedx.orgでハーバードのcs50に登録しました。私はこの問題を2つ設定して、人々の名前をとり、最初の名前と姓の頭文字。コードはここにあります:名前を入力して最初に姓と頭文字の頭文字を付けます
string initial (string a);
int main (void)
{
printf("Give me your name\n: ");
string name = GetString();
printf("Give me your second name\n:");
string sname = GetString();
char*c; char*b;
c = name;
b = sname;
printf("%s %s\n", initial(c),initial(b));
}
string initial (char*a)
{
if (*a >= 'A' && *a <= 'z')
{
return toupper(*a);
else
return ("please retype your name");
}
}
これは私がコンパイラから得ているエラーメッセージです。
initials.c:27:16: error: incompatible integer to pointer conversion returning 'int' from a function with result type
'string' (aka 'char *') [-Werror,-Wint-conversion]
return toupper(*a);
^~~~~~~~~~~
initials.c:29:9: error: expected expression
else
^
2 errors generated.
make: *** [initials] Error 1
何が問題なのですか。
if/elseステートメントに '}'と '{'がありません – Musa
http://www.cplusplus.com/reference/cctype/toupper/ 'toupper'がintを返します。これは間違いありません文字列。 –
@ KamiKazeこれはC++リソースであり、タグの言語はC++ではありません。 –