从键盘输入一个字符串(字符串长度不超过80且非空),按由长到短、从左到右的顺序输出该字符串的所有子串,一个子串占一行c语言
时间: 2024-09-24 17:25:05 浏览: 34
在C语言中,你可以使用嵌套循环来生成并输出字符串的所有子串。这里是一个简单的程序示例:
```c
#include <stdio.h>
#include <string.h>
void printSubstrings(char str[], int length) {
for (int i = 0; i < length; i++) { // 遍历字符串的每一个字符作为子串的起始位置
for (int j = i; j < length; j++) { // 内层循环遍历剩余部分作为子串的结束位置
printf("%.*s\n", j - i + 1, &str[i]); // 输出子串,*表示取指针所指向的位置的元素数,&str[i]获取地址
}
}
}
int main() {
char input[90]; // 假设最大输入长度为80,考虑到结束符'\0'
printf("请输入一个字符串(不超过80个字符): ");
fgets(input, sizeof(input), stdin); // 输入字符串
input[strcspn(input, "\n")] = '\0'; // 去除换行符
int strlen = strlen(input);
printSubstrings(input, strlen);
return 0;
}
```
在这个程序中,`printSubstrings`函数通过两个嵌套循环生成所有子串,并使用`printf`将其打印出来。注意,这个程序会包含每个字符自身作为一个单独的子串。
阅读全文