Упорядочить слова в строке по алфавиту - C (СИ)
Формулировка задачи:
. Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова (разделенные одним пробелом), но расположенные в алфавитном порядке.
Решение задачи: «Упорядочить слова в строке по алфавиту»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <locale.h> int main(int argc, char** argv[]) { setlocale(LC_ALL, "Russian"); char str[65]; char lexem[20][65]; puts("Введите строку:"); gets(str); int q=0; char *pch = strtok (str," "); //во втором параметре указаны разделители (пробел, запятая, точка) int i=0; while (pch != NULL) //пока есть лексемы { strcpy(lexem[i],pch); pch = strtok (NULL, " "); i++; q++; } char words[q][65]; char sorted_mass[q]; for (i=0;i!=q;i++){ strcpy(words[i],lexem[i]); //printf("%s \n",words[i]); } int x, j, A[q], c; for(x=0;x<q;x++){ A[x]=words[x][0]; }// ввод массива A for ( i = 0; i < q-1; i ++ ){ for ( j = q-2; j >= i; j -- ){ if ( A[j] > A[j+1] ) { c = A[j]; A[j] = A[j+1]; A[j+1] = c; } } sorted_mass[i]= A[i]; } for(j=0;j!=q; j++){ for(i=0;i!=q;i++) { if((sorted_mass[j]==words[i][0])&&(isalpha(words[i][0]))) { printf("%s \n",words[i]); words[i][0]=0; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д