要求用户输入一个字符串,只有字母的字符串,并且让用户输入一个数n,输出长度为n的回文字符串,c语言
时间: 2024-12-15 22:15:53 浏览: 9
在C语言中,你可以通过循环和条件判断创建一个函数来获取用户输入的字母字符串并生成指定长度的回文字符串。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* generate_palindrome(int length);
int main() {
char input[100];
int n;
printf("请输入一个只包含字母的字符串: ");
fgets(input, sizeof(input), stdin); // 防止换行符
input[strcspn(input, "\n")] = '\0'; // 去除换行符
printf("请输入一个数字n: ");
scanf("%d", &n);
char* palindrome = generate_palindrome(n);
if (palindrome) {
printf("长度为 %d 的回文字符串是: %s\n", n, palindrome);
free(palindrome); // 释放内存
} else {
printf("无法生成长度为 %d 的回文字符串。\n", n);
}
return 0;
}
// 生成回文字符串的函数
char* generate_palindrome(int length) {
if (length <= 0 || length > strlen(input)) {
return NULL; // 如果长度不合理,返回NULL
}
char* palindrome = malloc((length * 2 - 1) * sizeof(char)); // 回文字符串通常中间字符是原字符串的第一个字符
for (int i = 0; i < length / 2; i++) {
palindrome[i] = input[i]; // 前半部分
palindrome[length - 1 - i] = input[i]; // 后半部分对称添加
}
palindrome[length - 1] = '\0'; // 结尾添加终止符
return palindrome;
}
阅读全文