Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序Pig拉丁翻译错误-如何修复错误?_C_String_Char - Fatal编程技术网

C程序Pig拉丁翻译错误-如何修复错误?

C程序Pig拉丁翻译错误-如何修复错误?,c,string,char,C,String,Char,示例->示例是,但示例是打印的。如果它以一个元音(a,e,i,o,u)开头,只需在末尾加上“yay”。我该如何解决这个问题 快速->ickquay,但相反,uickqay是打印出来的“去”应该被视为一对字母,一起作为辅音。我该如何解决这个问题呢 y在第一次出现后才被视为元音,但我已经做到了 #include <stdio.h> #include <string.h> #include <stdbool.h> bool isVowel(char v); in

示例->示例是,但示例是打印的。如果它以一个元音(a,e,i,o,u)开头,只需在末尾加上“yay”。我该如何解决这个问题

快速->ickquay,但相反,uickqay是打印出来的“去”应该被视为一对字母,一起作为辅音。我该如何解决这个问题呢

y在第一次出现后才被视为元音,但我已经做到了

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

bool isVowel(char v);

int main()
{
  char str1[50] = ""; 
  char str2[10] = "";
  int i;
  int length;

  printf("Pig Latin Translator\n");
  printf("----------------------\n");
  printf("Type a word: ");
  scanf("%s", str1);

  length = strlen(str1); 

  strncat(str2, str1,1); 

  for(i = 0; i < length; i++)
  {
    str1[i] = str1[i + 1];
  }

  strcat(str1, str2);

  strcat(str1, "ay");
  printf("%s", str1);
  return 0;
}


bool isVowel(char v) {
    if (v == 'A' || v == 'E' || v == 'I' || v == 'O' || v == 'U' ||
        v == 'a' || v == 'e' || v == 'i' || v == 'o' || v == 'u') {
        return true;
    }
    return false;
} 
所有前导辅音移到单词的末尾,直到到达第一个元音(包括y),并在末尾添加“ay”。这似乎起了作用

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

bool isVowel(char v);

int main()
{
  char str1[50] = ""; 
  char str2[10] = "";
  int i;
  int length;

  printf("Pig Latin Translator\n");
  printf("----------------------\n");
  printf("Type a word: ");
  scanf("%s", str1);

  length = strlen(str1); 

  strncat(str2, str1,1); 

  for(i = 0; i < length; i++)
  {
    str1[i] = str1[i + 1];
  }

  strcat(str1, str2);

  strcat(str1, "ay");
  printf("%s", str1);
  return 0;
}


bool isVowel(char v) {
    if (v == 'A' || v == 'E' || v == 'I' || v == 'O' || v == 'U' ||
        v == 'a' || v == 'e' || v == 'i' || v == 'o' || v == 'u') {
        return true;
    }
    return false;
} 
#包括
#包括
#包括
布尔是元音(charv);
int main()
{
字符str1[50]=“”;
字符str2[10]=“”;
int i;
整数长度;
printf(“Pig拉丁翻译程序”);
printf(“-------------------------\n”);
printf(“键入一个单词:”);
scanf(“%s”,str1);
长度=strlen(str1);
strncat(str2,str1,1);
对于(i=0;i
以下程序工作正常

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

bool isVowel(char v);

int main()
{
  char str1[50] = ""; 
  int i = 0;

  printf("Pig Latin Translator\n");
  printf("----------------------\n");
  printf("Type a word: ");
  scanf("%s", str1);

  if (toupper(str1[i]) == 'Y')
    i++;

  for (; !isVowel(str1[i]) && str1[i] != '\0'; i++)
  {
    if (toupper(str1[i]) == 'Q' && toupper(str1[i + 1]) == 'U')
      i++;
  }

  strncat(str1, str1, i);
  strcpy(str1, &str1[i]);

  if(i == 0)
    strcat(str1, "yay");
  else
    strcat(str1,"ay");

  printf("%s", str1);
  return 0;
}

bool isVowel(char v) { return strchr("AEIOUY", toupper(v)); }
#包括
#包括
#包括
布尔是元音(charv);
int main()
{
字符str1[50]=“”;
int i=0;
printf(“Pig拉丁翻译程序”);
printf(“-------------------------\n”);
printf(“键入一个单词:”);
scanf(“%s”,str1);
if(toupper(str1[i])=='Y')
i++;
对于(;!IS元音(str1[i])&&str1[i]!='\0';i++)
{
if(toupper(str1[i])='Q'&&toupper(str1[i+1])='U')
i++;
}
strncat(str1,str1,i);
strcpy(str1和str1[i]);
如果(i==0)
strcat(str1,“yay”);
其他的
strcat(str1,“ay”);
printf(“%s”,str1);
返回0;
}
bool是元音(char v){return strchr(“AEIOUY”,toupper(v));}
bool是元音(char v){return strchr(“AEIOU”,toupper(v));}