[ad_1]
Description Write a function that takes one string and, capitalize the last character of each word in uppercase and the rest in lowercase. A word is a section of string delimited by spaces/tabs or the start/end of the string. If a word has a single letter, it must be capitalized. A letter is a character in the set [a-zA-Z]
I keep getting errors and failures, which I cannot figure out
私が試したこと:
#include <stdio.h> #include <ctype.h> char* rcapitalize(char* str) { int i = 0; while (str[i] != '\0') { if (isalpha(str[i])) { str[i] = tolower(str[i]); if (!isalpha(str[i + 1])) { str[i] = toupper(str[i]); } } i++; } return str; }
解決策 1
コードを実行すると:
C
#include <stdio.h> #include <ctype.h> char* rcapitalize(char* str) { int i = 0; while (str[i] != '\0') { if (isalpha(str[i])) { str[i] = tolower(str[i]); if (!isalpha(str[i + 1])) { str[i] = toupper(str[i]); } } i++; } return str; } int main() { char data[] = "Hello World"; printf("%s\n", rcapitalize(data)); return 0; }
そうすれば、私が期待しているものが得られます:
結果
hellO worlD
それが課題で求められていることです – ある種のことです。
したがって、関数をどのように呼び出しているかを確認してください。それが問題である可能性があります。
次に、もう一度課題を読みます。「私の名前は Mike です。姓をハイフン化したものです。これを読めますか?」をテストしたら、結果はどうなるでしょうか?
[ad_2]
コメント