したがって、文字列配列内のすべての単語の最初の文字を大文字にし、文字列を逆順に出力するコードを作成したいと考えています。配列を逆に印刷することはできませんでしたが、それはさておき、これが私が思いついたものです:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char string[100];
int i, j;
char newString[100];
printf("\nEnter string: ");
gets(string);
for (i=0; i <strlen(string); i++){
if (string[i] == ' ' && isalnum(string[i+1])==1){ //if the character is preceded by a space
newString[i] = toupper(string[i+1]); //copy the uppercase of the character to newString
}
if (isalpha(string[0]) == 1){ //capitalize the first character in the string if it is a letter
newString[0] = toupper(string[0]); //copy character to newString
}else{
newString[i] = string[i];
}
}
printf("%s", newString); //preferably, the newString should be printed in reverse order, but I can't seem to do it.
}
もしも:
入力: カラン・レナート
このコードの想定される出力: Curran Lennart
(欲しいもの: narruC tranneL)
そのままでは、私が得ているのは次の出力だけです:
curran lennarta
「kate daniels」を入力すると、「kate daniels」が返されます。入力が次の場合:
julie olsen
出力は次のとおりです。
julie olsenw
助けてください。:(