㈠ 怎麼用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]='