Найти длину самого короткого слова в строке (С++ -> Си) - C (СИ)
Формулировка задачи:
Задание: Работа со строками. Найти длину самого короткого слова
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
int main(void)
{
string text="qwe asdf zxcvb qw zxcvasdf weqr";
int size=10;
istringstream iss(text);
while(iss)
{
string temp;
iss >> temp;
if(size>temp.size() && temp.size()!=0) size=temp.size();
}
cout<<"самое короткое слово: "<<size<<" букв";
}Решение задачи: «Найти длину самого короткого слова в строке (С++ -> Си)»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define DELIM " ,.-!?"
int main(void)
{
char str[] = "Eniki beniki eli vareniki", *p = strtok(str, DELIM);
unsigned int minLen = strlen(p);
while ((p = strtok(NULL, DELIM)))
if (strlen(p) < minLen)
minLen = strlen(p);
printf("Smallest word has %u chars\n", minLen);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream.h и string.h
- Объявление строки, на которой будет происходить поиск самого короткого слова
- Использование функции strtok для разделения строки на слова и получения первого слова
- Инициализация переменной minLen значением длины первого слова
- Использование цикла while для проверки всех оставшихся слов
- Сравнение длины текущего слова с minLen
- Обновление значения minLen, если текущее слово короче
- Вывод результата - длины самого короткого слова
- Завершение программы