c語言字串問題 幫幫忙
輸入一個字串:bbbbXXXaaaaXXXXXXXjkkkadaXXXXkjflddXXXcccccd
輸出~~~把有X的地方截斷~~~~然後~~~由小至大排好~~~:
aaaa
bbbb
cccccd
jkkkada
kjfldd
#include <stdio.h>
#include <stdlib.h>
int inputdata(char *,char *,char **);
void sortstring(char **,int );
void printstring(char **, int);
main()
{
int i,j,n,len;
char *namestring[100];
char **ptr=namestring;
char a[80],b[80];
printf(\"輸入一字串\\n\");
gets(a);
n=inputdata(a,b,ptr);
sortstring(ptr,n);
printf(\"由大至小\\n\");
printstring(ptr,n);
getch();
}
int inputdata(char *a,char *b,char **ptr) //分開
{ int n=0,len;
char *p,*q;
len = strlen( );
*(ptr+n) = malloc(sizeof(char)*(len+1));
strcpy(*(ptr+n), );
n++;
return n;
}
void sortstring(char **ptr, int n) //排大小
{
char *p;
int i,j;
for (i=n-1; i>= 0; i--)
for ( j=0; j < i; j++)
if ( strcmp( ptr[j] , ptr[j+1]) > 0)
{
p = ptr[j];
ptr[j] = ptr[j+1];
ptr[j+1] = p;
}
}
void printstring(char **ptr , int n) //輸出
{
int i;
for (i=0; i<n; i++)
printf(\"%s\\n\", ptr[i]);
}
上面是我的程式
int inputdata(char *a,char *b,char **ptr) ←這一段我不會寫
請高手幫我一下謝謝 !!
有更好的方法也可以加上去!!!!
1 個解答
- 1 0 年前最佳解答
#include <stdio.h>
#include <stdlib.h>
int inputdata(char *,char [],char **);
void sortstring(char **,int );
void printstring(char **, int);
main()
{
int n;
char *namestring[1000];
char **ptr=namestring;
char a[1000],b[1000];
printf("輸入一字串\n");
gets(a);
n=inputdata(a,b,ptr);
sortstring(ptr,n);
printf("由大至小\n");
printstring(ptr,n);
getch();
}
int inputdata(char *a,char b[],char **ptr)
{ int i=0,n=0,ok,len;
while(*a)
{
while((*a!=' ')&&(*a))
{
b[i++]=*a++;
b[i]='\0';
ok=1;
}
if(ok==1)
{
len=strlen(b);
*(ptr+n)=malloc(sizeof(char)*(len+1));
strcpy(*(ptr+n),b);
ok--; n++; i=0;
}
else
a++;
}
return n;
}
void sortstring(char **ptr, int n)
{
char *p;
int i,j;
for(i=0; i<n; i++)
for(j=0;j<n-1; j++)
if(strcmp( ptr[j] , ptr[j+1]) > 0)
{
p = ptr[j];
ptr[j] = ptr[j+1];
ptr[j+1]=p;
}
}
void printstring(char **ptr , int n)
{
int i;
for (i=0; i<n; i++)
{
printf("%s\n", ptr[i]);
printf("\n");
}
}
參考資料: ..