0

私が書いた次のコードを使って、誰かが親切に私を正しい方向に導いてくれませんか。基本的に、スペースやその他の非英字を考慮せずに、文字列内の他のすべての文字を大文字で印刷するようにしています。

例:string input = "thanks for the add"は、 "ThAnKs FoRtHeAdD"として出力されます。

int main (void) 
{
    char* input = GetString();
    if (input == NULL)
        return 1;
    for (int i = 0, x = strlen(input); i < x; i+=2)
        input [i] = toupper(input[i]);
    printf("%s\n", input);
    return 0;
}

注:私はコンピューターサイエンスに不慣れで、現在edx.orgを通じてCS50xを使用しています。

4

2 に答える 2

1

isalpha他の種類の文字を無視するために使用するだけです。

#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main (void) 
{
    char input[] = "thanks for the add";
    int  alpha_count = 0;
    for (int i = 0, x = strlen(input); i < x; i++) {
      if (isalpha(input[i])) {
        if (alpha_count++ % 2 == 0 ) 
          input [i] = toupper(input[i]);
      }   
    }   
    printf("%s\n", input);
    return 0;
}
于 2013-03-19T02:33:44.850 に答える
-1
#include <iostream>
using namespace std;

int main()
{
    char st[] = "thanks for the add";
    for(int i=0; i<strlen(st); i++)
        st[i++]=toupper(st[i]);
    cout<<st<<endl;
}
于 2017-12-13T22:26:54.017 に答える