输入字符串,每行减少一个字母,并逆序
时间: 2024-10-14 16:15:16 浏览: 20
php程序员面试题(c卷 附答案).pdf,这是一份不错的文件
要编写一个程序,输入一个字符串,然后逐行输出每个字符串,每次减少一个字符并保持逆序,你可以使用循环结构和字符串切片的方法来实现。以下是一个简单的C语言程序示例:
```c
#include <stdio.h>
#include <string.h>
void print_strings(char *str, int length) {
for (int i = length - 1; i >= 0; i--) {
char new_str[strlen(str)];
strncpy(new_str, str + i, 1); // 将下一个字符复制到新字符串
printf("%s\n", new_str);
}
}
int main() {
char input[100]; // 假设用户输入不会超过100个字符
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 获取用户的输入,包括换行符
// 移除fgets添加的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
int len = strlen(input);
print_strings(input, len);
return 0;
}
```
在这个程序中,`print_strings` 函数负责递减处理字符串。每次循环,它都会创建一个新的子字符串,长度为1,然后从原字符串中取出相应位置的字符。注意,为了处理字符串的边界情况(避免越界),我们检查了最后一个字符是否是换行符。
运行这个程序时,请确保给定的输入字符串不超过预定义的最大长度100个字符。
阅读全文