私のコードは、「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;
}