从键盘输入一个字符串(字符串长度不超过80且非空),按由长到短、从左到右的顺序输出该字符串的所有子串,一个子串占一行c语言
时间: 2024-09-24 19:25:05 浏览: 66
在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
将其打印出来。注意,这个程序会包含每个字符自身作为一个单独的子串。
相关推荐
















