首页 > 解决方案 > 正确调用函数 Pig_Latin_Converter 的方法?

问题描述

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

void Pig_Latin_Converter(char *a);

int main() {
    
    char password[50];
    
    printf("Please input password: ");
    int passw = 0;
    do {
        password[passw] = getch();
        if(password[passw] != '\r') {
            printf("*");
        }
        passw++;
    }
    while(password[passw - 1] != '\r');
    password[passw - 1] = '\0';

    Pig_Latin_Converter(password);
    
    return 0;
}

void Pig_Latin_Converter (char *a) {
    int v = 0, c = 0, pos = 0,sv = 0, ch;
    strlwr(a);

    if(a[0]=='a'|| a[0]=='e'|| a[0]=='i'|| a[0]=='o'|| a[0]=='u'){
        ++sv;
        printf("\n\nPig Latin Equivalent: %syay", *a);
    }
    else
    {
        ++c;
        for (int i = 0; a[i] != '\0'; ++i)
        {
            if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' ||
                a[i] == 'o' || a[i] == 'u') {
                ++v;
                pos=i;
                break;}
        }
    }

    if(c==1 && v==1)
    {   
        printf("\n\n");
        printf("Pig Latin Equivalent: ");
        for(int i=pos; i<strlen(*a); i++) {
            printf("%c", a[i]);
        }
        for(int i=0;i<pos;i++)
        {
            printf("%cay", a[i]);
        }
    }
    else if(c==1 && sv==0)
    {   
        printf("\n\n");
        printf("Pig Latin Equivalent: %syay", *a);
    }
}

您好,我是使用 C 编程中使用的用户定义函数的初学者。该程序的任务是输入屏蔽密码,然后将其翻译成 Pig Latin。但是,我一直在这方面提出错误。有没有办法解决这个问题?我有一种巨大的直觉,认为问题只存在于 Pig Latin 函数内部。

标签: cfunctionuser-defined-functions

解决方案


推荐阅读