编写一个函数(用指针)将字符串中所有的字母转换成其后的第key个字母,其余字符不变。

2025-04-14 03:17:26
推荐回答(1个)
回答1:

#include
#define N 50
void secret(int key, char* p);
int main()
{
    char a[N];
    int key;
    printf("请输入加密方式\n");
    scanf("%d", &key);
    printf("请输入要加密的字符串\n");
    //gets(a);
    scanf("\n%[^\n]",a);//<======================
    secret(key, a);
    puts(a);
    return 0;
}
void secret(int key, char* p)
{
    int t;
    for (; *p != '\0'; p++)
    {
        if (*p >= 'A' && *p <= 'Z')
        {
            if (*p >= 'A' - key && *p <= 'Z')
            {
                t = *p - 'Z' + key;
                *p = t + 'A';
            }
            else
                *p = *p + key;
        }
        else if (*p >= 'a' && *p <= 'z')
        {
            if (*p >= 'z' - key && *p <= 'z')
            {
                t = *p - 'z' + key;
                *p = t + 'a';
            }
            else
                *p = *p + key;
        }
    }
}