Witam piszę program, który ma za zadanie pobrać maksymalnie 10 łańcuchów znakowych oraz wykonywać następujące rzeczy po wybraniu odpowiedniej cyfry w menu:
- Wyświetlenie pierwotnej listy łańcuchów.
- Wyświetlenie łańcuchów w porządku ASCII.
- Wyświetlenie łańcuchów według długości (rosnąco).
- Wyświetlenie łańcuchów według długości pierwszego słowa.
- Koniec.
Mam następujący kod (nie wrzucam wszystkich funkcji tylko tą niedziałającą poprawnie):
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define LANCUCHY 10
#define ROZMIAR 101
void menu(void);
void wyczysc(void);
void lista(char *y[], int x);
void ASCII(char *y[], int x);
void dlugosc(char *y[], int x);
void pierwsze(char *y[], int x);
int main(void)
{
char tab[LANCUCHY][ROZMIAR];
char *wsk[LANCUCHY];
int licz = 0, wybor;
puts("Podaj maksymalnie dziesiec lancuchow znakowych");
puts("Wcisnji enter aby zakonczyc");
printf("Podaj %d lancuch\n", licz + 1);
while ((licz < LANCUCHY) && (gets(tab[licz]) != NULL) && (tab[licz][0] != '\0'))
{
wsk[licz] = tab[licz];
licz++;
printf("Podaj %d lancuch\n", licz + 1);
}
menu();
while (scanf("%d", &wybor))
{
switch(wybor)
{
case 1 :
lista(wsk, licz);
menu();
break;
case 2 :
ASCII(wsk, licz);
menu();
break;
case 3 :
dlugosc(wsk, licz);
menu();
break;
case 4 :
pierwsze(wsk, licz);
menu();
break;
case 5 :
wyczysc();
menu();
break;
case 6 :
return 0;
default :
puts("Wybierz liczbe od 1 do 6");
menu();
}
}
getchar();
getchar();
return 0;
}
void pierwsze(char *y[], int x)
{
int i, j;
char *tmp;
char *wsk[10];
/*for (i = 0; i < x; i++)
{
while (*y[i] != ' ')
{
wsk[i] = y[i];
}
}*/
for (i = 0; i < x - 1; i++)
{
for (j = i + 1; j < x; j++)
{
if (strlen(wsk[i]) > strlen((wsk[j])))
{
tmp = wsk[i];
wsk[i] = wsk[j];
wsk[j] = tmp;
}
}
puts(wsk[i]);
}
puts(wsk[x - 1]);
}
Chciałem aby do wsk była kopiowana z y część łańcucha tylko do momentu napotkania pierwszej spacji, a potem tylko porównanie długości tych łańcuchów. Jednak nie wiem bardzo jak to zrealizować i czy istniej w ogóle taka możliwość w tak zbudowanej funkcji. Prosiłbym o jakieś porady w tej kwestii.