-1

私のコードは、「Flower」と「Rhythm」を除いて正常に動作します。出力は次のようになります。ここで、「i」と「e」は i-cap と e-cap です。どこかで間違った場合に備えてASCIIテーブルをチェックしようとしましたが、テーブルにこれら2つが見つかりません。C++ に関する私の知識は限られているため、ここや他の場所で既存のスレッドをいくつか読んでみましたが、それらについていくことができませんでした。

これが私のコードです:

#include <stdio.h>
#include <string.h>

void toPigLatin(char *i){
    int k,m;
    char *n;
    n = i;
    printf("Pig Latin version: ");
    if(*i=='A'||*i=='a'||*i=='E'||*i=='e'||*i=='I'||*i=='i'||
           *i=='O'||*i=='o'||*i=='U'||*i=='u'){
        k = 0;
        while(*i!='\n'){
            printf("%c",*i);
            i++;
            k++;
        }
        printf("way");
    }else{
        k = 1;
        i++;
        while(*i!='\0'){
            if(*i=='A'||*i=='a'||*i=='E'||*i=='e'||*i=='I'||*i=='i'||
                *i=='O'||*i=='o'||*i=='U'||*i=='u'||*i=='Y'||*i=='y'){
                break;
            }
            k++;
            i++;
        }
        i = n + k;
        char *r;
        r = n;
        while(*i!='\0'){
            if(*n>=65&&*n<=90)
                printf("%c",*i-32);
            else
                printf("%c",*i);
            i++;
            n++;
        }
        i = r;
        m = 0;
        while (m!=k){
            if(*r>=65&&*r<=90)
                printf("%c",*i+32);
            else
                printf("%c",*i);
            m++;
            i++;
        }
        printf("ay");
    }
}

int main(){
    char arr[16],*i,check[16];
    i = check;
    printf("Enter a word: ");
    scanf("%s",arr);
    while(1){
        strcpy(check,arr);
        if(strcmp(check,"exit")==0){
            break;
        }
        else{
            printf("\n\n");
            toPigLatin(arr);
            printf("\n\nEnter a word: ");
            scanf(" %s",arr);
        }
    }
    return 0;
}
4

1 に答える 1