C/C++
Программирование на С++
Дана строка слов, разделенных пробелами. Определите самое короткое слово.
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string first_short_word(const string& line) {
if (line.empty()) return line;
istringstream iss(line);
string short_word;
iss >> short_word;
string word;
while (iss >> word) {
if (word.length() < short_word.length()) {
short_word = word;
}
}
return word;
}
int main() {
system("chcp 1251 > nul");
cout << "Введите строку: ";
string line;
getline(cin, line);
auto short_word = first_short_word(line);
cout << "Самое короткое слово: " << short_word << '\n';
system("pause > nul");
}
#include <string>
#include <sstream>
using namespace std;
string first_short_word(const string& line) {
if (line.empty()) return line;
istringstream iss(line);
string short_word;
iss >> short_word;
string word;
while (iss >> word) {
if (word.length() < short_word.length()) {
short_word = word;
}
}
return word;
}
int main() {
system("chcp 1251 > nul");
cout << "Введите строку: ";
string line;
getline(cin, line);
auto short_word = first_short_word(line);
cout << "Самое короткое слово: " << short_word << '\n';
system("pause > nul");
}
Dos M
нужно чтобы работала с русскими символами. а когда ввожу английские символы показывает не самое короткое слово, а самое последнее
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
string s;
getline(cin,s);
const int len = s.length();
int i_min = 0, len_min = len;
int i_tmp, len_tmp;
string tmp;
for(int x = 0; x < len; x++)
{
if( isalpha(s[x]) )
{
i_tmp = x;
while( isalpha(s[x]) )
{
tmp += s[x];
x++;
}
x--;
len_tmp = tmp.length();
if(len_tmp < len_min)
{
i_min = i_tmp;
len_min = len_tmp;
}
tmp = "";
}
}
cout << "Самое короткое слово -- ";
for(int x = i_min; x < i_min + len_min; x++)
cout << s[x];
cout << '.' << endl;
return 0;
}
#include <string>
#include <cctype>
using namespace std;
int main()
{
string s;
getline(cin,s);
const int len = s.length();
int i_min = 0, len_min = len;
int i_tmp, len_tmp;
string tmp;
for(int x = 0; x < len; x++)
{
if( isalpha(s[x]) )
{
i_tmp = x;
while( isalpha(s[x]) )
{
tmp += s[x];
x++;
}
x--;
len_tmp = tmp.length();
if(len_tmp < len_min)
{
i_min = i_tmp;
len_min = len_tmp;
}
tmp = "";
}
}
cout << "Самое короткое слово -- ";
for(int x = i_min; x < i_min + len_min; x++)
cout << s[x];
cout << '.' << endl;
return 0;
}
Юрий Мальцев
Строка вводится в консоль.
Программа работает только с латинскими символами.
Программа работает только с латинскими символами.
Dos M
нужно с русскими символами
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
char text[1024]={0}, *word,*minword;
int size=0, minsize=1024;
printf("Enter your text:\n");
fgets(text,sizeof(text),stdin);
word=strtok(text," ");
while(word!=NULL)
{
if( strstr(word,"\n") )
size=strlen(word)-1;
else size=strlen(word);
if(size<minsize)
{
minsize=size;
minword=word;
};
word=strtok(NULL," ");
}
printf("\n\nMinimal word is: %s", minword);
fflush(stdout);
sleep(5);
return 0;
}

#include<string.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
char text[1024]={0}, *word,*minword;
int size=0, minsize=1024;
printf("Enter your text:\n");
fgets(text,sizeof(text),stdin);
word=strtok(text," ");
while(word!=NULL)
{
if( strstr(word,"\n") )
size=strlen(word)-1;
else size=strlen(word);
if(size<minsize)
{
minsize=size;
minword=word;
};
word=strtok(NULL," ");
}
printf("\n\nMinimal word is: %s", minword);
fflush(stdout);
sleep(5);
return 0;
}

Dos M
нужно чтобы работала с русскими символами. а когда ввожу английские символы показывает не самое короткое слово, а самое последнее
Dos M
извините не туда ответила
Dos M
такие вот ошибки. нужно еще вставить setlocale(LC_ALL, "Russian");
ну и чтобы работала с русскими символами
ну и чтобы работала с русскими символами

Dos M
проблема в том что также показывает не удалось открыть файл вклюяение
Dos M
мне на visual studio обязательно нужно, можно как то исправить эту ошибку?
Похожие вопросы
- Программирование на С++
- Программирование на C++
- Как начать изучать программирование?
- Доброго дня! Хочу сменить сферу деятельности . Заинтересовал вариант программирования .
- Программирование на C++
- Книги по программированию.
- Может ли новичок в программирование начать с c++/Gamedev
- Чем отличаются языки программирования ???
- На каком языке программирования (Assembler / С / С++) лучше будет написать компилятор для своего языка программирования?
- Указатели. Программирование с использованием динамических двухмерным масивов.