|
|
|
программа на си по обработке строки
|
|||
|---|---|---|---|
|
#18+
Помогите кто может написать программу на си которая получает от пользователя строку слов разделённой пробелами и табуляцией нужно эту строку обработать так чтобы между словами оставить только один пробел и раставить слова в алфавитном порядке и вывести на экран вот часть кода который у меня шас есть автор#include <stdio.h> #include <string.h> int words (char *from,char *to) { //char *from=buf ,*to=buf; int l,k ; k=0;l=0; strcat(from," "); *to='\0'; while(*(from+=strspn(from," \t"))) { strncat(to,from,strcspn(from," \t")); from=strpbrk(from," \t"); *to=' '; k++; }return k;} //k++; //l=strspn(from," \t"); //if (!l) // *to++=l; // *from=*to; // while (l-->0) // *to++=*from++; // *to++=' '; //} //*to='\0'; //return k; //} /* int spase(char buf[]) { char *from=buf; for (;*from=" "|| *from=='/t';*from++); return from; }*/ int swop(char buf[],int l) { int i,k,n; char *p ; int tmp[80]; for (i=0;*buf+=strspn(buf," \t") && i<l;i++,buf+=strcspn(buf," \t")); if (!*buf) return 0; n=strspn(buf," \t"); p=buf+n+strspn(buf+n," \t"); if (!*p) return 0; k=strcspn(buf," \t"); i=strncmp(buf,p,k); if(i>0 || !i && n>k) { strncpy(tmp,buf,n+1); for(i=0;i<=k;i++) buf =p; strncpy(p+k-n,tmp,n+1); return 1;} return 0; } int main() { char buf[80],buf2[80]; int i,n,j; i=0;j=0;n=0; while (printf("enter string "), gets(buf)) { //spase(buf); n=words(buf,buf2); for (i=1;i<n;i++) for(j=0;j<n-1;j++) swop(buf2,j); printf("%s\n",buf2); }return 0; } как задумывалось в первой функции должны удалятся лишнии пробелы и символы табуляци и фозвращать значение равное количеству строк на данный момент она пока только удаляет пробелыи табуляцию. вторая функция уже должна раставлять слава ф алфавитном порядке не знаю работает ли она правильно можете если не трудно исправить эту или написсать свою ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:08:31 |
|
||
|
программа на си по обработке строки
|
|||
|---|---|---|---|
|
#18+
авторПомогите в работу аффтопитезь: 4 8 15 16 23 42 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:11:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34952264&tid=2027782]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
179ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 183ms |
| total: | 419ms |

| 0 / 0 |
