Найти самое «большое» и самое «маленькое» слово - C (СИ)
Формулировка задачи:
Доброго всем дня!!!!
задача такая:
Напишите программу, которая находит самое «большое» и самое «маленькое» слово. Слова сравниваются в лексикографическом порядке.Размер слова ограничен 20 символами. Программа должна прекращать принимать слова «на проверку» после ввода пустой строки.
Я решил что надо все введенные слова занести в массив , и тут у меня возникла проблема , ведь в си нет строк.....
В Нэте нашел , что можно всё это сделать с помощью указателей, Но как я вообще не понимаю,кто может подскажите,
вот такой код
а как сделать массив строк не знаю
пытался вот так
Спасибо всем заранее
#include <stdio.h>
#include <malloc.h>
#include <string.h>
char *getWord()
{
char *w,c;
int i;
w=(char *)calloc(1,50);
i=0;
while(1)
{
c=getchar();
if (c == 10) break;
w[i++]=c;
}
return w;
}
int main(int argc, char* argv[])
{
int t, i;
char *wd;
char *small;
char *bigword;
i = 0;
while(1)
{
printf("Enter word: ");
wd=getWord();
if (strlen(wd) == 0) break;
if(i == 0)
{
printf("hello");
small = &wd;
bigword = &wd;
}
choiseBiggerWod(*small,*bigword, *bigword);
free(wd);
i++;
}char *tempArr[200]
Решение задачи: «Найти самое «большое» и самое «маленькое» слово»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define MAXLEN 10
int main()
{
char string[MAXLEN][20] = {{0}};
unsigned count = 0;
unsigned i, j;
char buff[20];
unsigned min;
while (fgets(string[count], sizeof(string[count]), stdin) &&
(string[count][0] != '\n') && (count < MAXLEN))
{
count++;
}
for (i = 0; i < (count - 1); ++i)
{
min = i;
for (j = i + 1; j < count; ++j)
{
if (strcmp(string[min], string[j]) > 0)
{
min = j;
}
}
strcpy(buff, string[min]);
strcpy(string[min], string[i]);
strcpy(string[i], buff);
}
for (i = 0; i < count; ++i)
{
printf("%s", string[i]);
}
return 0;
}