㈠ 怎么用c语言实现输出某个字符串的所有子串
三重循环即可
voidprint_all_sub(char*s)
{
inti,j,k;
for(i=0;s[i];i++)//遍历每个元素。
{
for(k=1;s[k+i-1];k++)//计算以s[i]开始长度为k的子串
{
for(j=0;j<k;j++)//输出子串。
{
printf("%c",s[i+j]);
}
printf(" ");
}
}
}
㈡ 用C语言实现输入一字符串后输出该字符串所有子串
#include<stdio.h>
#include<string.h>
void main()
{
char a[100];
int i,j,k,n;
gets(a);
n=strlen(a);
for(i=0;i<=n;i++)
for(j=i;j<n;j++)
{for(k=i;k<=j;k++)
printf("%c",a[k]);
printf("\n");
}
}
㈢ 用C语言编程解决从已知字符串中找出包含k个字符的所有“子串”,并打印。
#include <stdio.h>
#include <string.h>
char str[16];
int strlength;
int sublength;
char substr[8];
int cnt;
void findSubStr(int num,int startno);
int main(int argc, char* argv[])
{
memset(str,0,sizeof(str));
memset(substr,0,sizeof(substr));
strlength = 8;
sublength = 4;
cnt = 0;
int num = 0;
int startno = 0;
memcpy(str,"ABCDEFGH",sizeof("ABCDEFGH"));
findSubStr(num,startno);
printf("\n");
return 0;
}
void findSubStr(int num,int startno)
{
int i;
for(i = startno;i<=(strlength - sublength + num);i++){
substr[num] = str[i];
if (num >= (sublength-1)){
printf("%s\n",substr);
} else {
findSubStr(num+1,i+1);
}
}
}
上面代码是从“ABCDEFGH”中打印出包括4个字符的所有子串。
㈣ c语言 输出字符串中指定长度的全部子串
#include<stdio.h>
#defineMAXLEN1000
charstr[MAXLEN+1];
charsubstr[MAXLEN+1];
intn,m;
voidback_track(intpos,intlen);
intmain(void)
{
inti;
scanf("%d%d",&n,&m);
scanf("%s",str);
back_track(0,0);
return0;
}
voidback_track(intpos,intlen)
{
inti;
if(len==m){
substr[len]='