Упорядочить слова в строке по алфавиту - 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;
        }
    }
}
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы