Meister
21.11.2005, 18:07
Вот такая ситуация, для начала цель:
Нужна прога, в которой вводим строку из слов, после нажатия ВВода прога сообщает сколько всего символов в строке, Самое длинное и самое короткое слово. При этом надо учесть что пробелы и знаки пунктуации не будут подсчитываться, но могут использоваться.
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<string.h>
using namespace std;
int main()
{
int i,longe, na4al,slov=0,array[100]={0},bukv=0,s4et=-1,max,min,x=0, prom;
char mass[100]={0};
cout<<"Input text: ";
cin.get(mass,100);
cout<<endl;
cout<<"\n Obshee kol-vo Symbolov: "<< strlen(mass) <<endl;
for (int zz=0; zz<longe-1 ;zz++)
if (ispunct(mass[zz]) || isspace(mass[zz]))
{
array[x]=bukv;
bukv=0;
x++;
}
else
bukv++;
max=array[0];
for (int z=1;z<x;z++)
if (array[z]>max)
max=array[z];
cout<<" Longest Word "<< max;
min=array[longe];
for (int k=0;k<x;k++)
if (array[k]==0 || array[k]==1)
prom=0;
else
if (array[k]<min)
min=array[k];
cout<<" Shortest word "<< min;
getch();
return 0;
}
Я предполагаю, что нужно сделать еще одну проверку на конец строки тут: if (ispunct(mass[zz]) || isspace(mass[zz]))
Но я не знаю как, повторяю трабл в том, чтобы прога работала правильно если последный символ не является пробелом или знаком пунктуации. У меня правильно считает только если пробел или знак пунктуации. Хелп.
Нужна прога, в которой вводим строку из слов, после нажатия ВВода прога сообщает сколько всего символов в строке, Самое длинное и самое короткое слово. При этом надо учесть что пробелы и знаки пунктуации не будут подсчитываться, но могут использоваться.
#include<iostream.h>
#include<iomanip.h>
#include<conio.h>
#include<string.h>
using namespace std;
int main()
{
int i,longe, na4al,slov=0,array[100]={0},bukv=0,s4et=-1,max,min,x=0, prom;
char mass[100]={0};
cout<<"Input text: ";
cin.get(mass,100);
cout<<endl;
cout<<"\n Obshee kol-vo Symbolov: "<< strlen(mass) <<endl;
for (int zz=0; zz<longe-1 ;zz++)
if (ispunct(mass[zz]) || isspace(mass[zz]))
{
array[x]=bukv;
bukv=0;
x++;
}
else
bukv++;
max=array[0];
for (int z=1;z<x;z++)
if (array[z]>max)
max=array[z];
cout<<" Longest Word "<< max;
min=array[longe];
for (int k=0;k<x;k++)
if (array[k]==0 || array[k]==1)
prom=0;
else
if (array[k]<min)
min=array[k];
cout<<" Shortest word "<< min;
getch();
return 0;
}
Я предполагаю, что нужно сделать еще одну проверку на конец строки тут: if (ispunct(mass[zz]) || isspace(mass[zz]))
Но я не знаю как, повторяю трабл в том, чтобы прога работала правильно если последный символ не является пробелом или знаком пунктуации. У меня правильно считает только если пробел или знак пунктуации. Хелп.