Найти сумму чисел, записанных в строке.
Кол-во слов (не чисел) в строке.
class STRING{
char *str;
int L,k;
public:
int Kol_slov();
STRING(char *S){L=strlen(S);str=new char[L+1]; strncpy(str,S,L);}
~STRING(){delete[]str;}
};
int STRING:: Kol_slov(){
int k=0,n=0;
char * chr;
clrscr();
char str[30];
gets(str);
chr=strtok(str," ,"); //razdelenie predlozenia na slova
while(chr)
{
n = atoi(chr);
if (!n) k++;
chr=strtok(NULL," ");
}
return k;
};
void main()
{char S[80];// char p[2];
int n;
clrscr();
STRING A(S);
cout<<"\nk-vo slov: "<<A.Kol_slov();
getch();}
Перед каждым словом и числом строки поставить его номер в строке.
class istr {
char st[80]; int n;
public:
char * action();
istr(char str[80]) { strcpy(st,str); n=strlen(st); } };
char * istr::action() {
char st1[80],st2[80],stk[1];
int k=0,i,j,e;
for (i=0;i<n;i++) {
if (((st[i-1]==' ')&&(st[i]!=' '))||(i==0)) {
n++; k++;
for (j=n;j>i;j--) st[j]=st[j-1];
itoa(k,stk,10); for (e=0;e<strlen(stk);e++) st[i+e]=stk[e];
} }
return(st);
}
void main() {
char stroka[80],str[80];
clrscr();
cout<<"\nVvedite stroku:\n"; gets(stroka);
istr A(stroka); strcpy(str,A.action());
cout<<"\n"<<str;
getch();
}
Найти в строке максимум из всех чисел.
class STRING{
char *str;
int L,k;
public:
int max();
STRING(char *S){L=strlen(S);str=new char[L+1]; strncpy(str,S,L);}
~STRING(){delete[]str;}
};
//------------------------------------------
int STRING:: max(){
int m=0,n=0;
char * chr;
clrscr();
char str[30];
gets(str);
chr=strtok(str," ,"); while(chr)
{
n = atoi(chr);
if (n)
{
if(n>m) m=n;
}
chr=strtok(NULL," ");
}
return m;
};
//-----------------------------------------
void main()
{char S[80];
int n;
clrscr();
STRING A(S);
cout<<"\max: "<<A.max();
getch();}
Определить в строке количество слов, начинающихся с заданной буквы.
class STRING{
char *str;
int L,k;
public:
int kolvo();
STRING(char *S){L=strlen(S);str=new char[L+1]; strncpy(str,S,L);}
~STRING(){delete[]str;}
};
//------------------------------------------
int STRING:: kolvo(){
char m; int p=0,i;
char * chr;
clrscr();
char str[80];
cout<<"Vvod stroki:\n";gets(str);
cout<<"vvedite kontrolniy simvol: "; cin>>m;
if (str[0]==m)p++;
for (i=1;i<strlen(str);i++)
if ((str[i]==m)&&(str[i-1]==' '))p++;
return p;
};
//-----------------------------------------
void main()
{char S[80];
int n;
clrscr();
STRING A(S);
cout<<"\kol-vo slov: "<<A.kolvo();
getch();}
Каждое слово строки заключить в скобки.
class ST{
char *st;
int L;
char *sS;
public:
void skobki();
ST(char* S){L=strlen(S);st=new char[L+1];strncpy(st,S,L);}
~ST(){delete[]st;}
};
//=========================================
void ST::skobki()
{int i,s; char *chr; int a;
chr=strtok(st," ");
while (chr) {a=atoi(chr); if (a) cout<<chr<<" "; else cout<<"("<<chr<<") ";
chr=strtok(NULL," "); }
};
//========================
void main()
{
char S[80];
clrscr();cout<<"Vvod\n"; gets(S);
ST A(S);
cout<<"f-ia: ";
A.skobki();
getch();}
Распечатать в столбик все числа строки, меньшие заданного значения.
class STRING{
char *stroka;
int L,k;
public:
int Stolbik();
STRING(char *S){L=strlen(S);stroka=new char[L+1]; strncpy(stroka,S,L);}
~STRING(){delete[]stroka;}
};
int STRING:: Stolbik(){
int k=0,n=0;
char * chr;
cout<<"\n Chislo= ";cin>>k;
cout<<"\n Rez-t: ";
chr=strtok(stroka," ");
while(chr)
{
n = atoi(chr);
if (n)
if (n<k)
cout<<chr<<"\n ";
chr=strtok(NULL," ");
}
};
void main()
{char S[80];
clrscr();
cout<<"\n Vvod stroki: "; gets(S);
STRING A(S);
A.Stolbik();
getch();}
Найти в строке первое слово (не число) максимальной длины.
class STRING{
char *K;
int L,k;
public:
int Kol_slov();
STRING(char *S){L=strlen(S);K=new char[L+1]; strncpy(K,S,L);}
~STRING(){delete[]K;}
};
int STRING:: Kol_slov(){
char K[200];
int i,c,maxc,l;
c=0;
maxc=0;
printf("Vvedite stroku: \n");
gets(K);
for(i=0;i<strlen(K);i++){
if (((K[i]>='a')&&(K[i]<='z'))||((K[i]>='A')&&(K[i]<='Z')))
if (c==maxc)
{maxc++;c++;l=i-maxc+1;}
else
c++;
else
c=0;
}
if(maxc!=0) {
printf("Samoe dlinnoe slovo: ");
for(i=0;i<maxc;i++){
printf("%c",K[l+i]);
}}
else printf("Slov tolko s bukvami net!");
scanf("%s",&K);
};
void main()
{char S[80];
int n;
clrscr();
STRING A(S);
A.Kol_slov();
getch();}
Распечатать в столбик все слова строки, стоящие на четных местах.
class STRING{
char *stroka;
int L,k;
public:
int Stolbik();
STRING(char *S){L=strlen(S);stroka=new char[L+1]; strncpy(stroka,S,L);}
~STRING(){delete[]stroka;}
};
int STRING:: Stolbik(){
int i=0,j,n=0,m=0; char c[80], S[80];
cout<<"\n Vvod stroki: "; gets(S);
strcat(S," ");
while (S[i]){ while (S[i]==' ') i++;
while ((S[i]!=' ')&&S[i]){ c[m]=S[i]; m++; i++;}
c[m]='\0'; n++;
if(strlen(c)==0)break;
j=atoi(c);
m=0;
if ((!j)&&(n%2==0))
{cout<<"\n "<<c; } };
};
void main()
{char S[80];
clrscr();
STRING A(S);
A.Stolbik();
getch();
}
Найти сумму чисел, записанных в строке.
class STRING{
char *str;
int L,k;
public:
int summ();
STRING(char *S){L=strlen(S);str=new char[L+1]; strncpy(str,S,L);}
~STRING(){delete[]str;}
};
//------------------------------------------
int STRING::summ(){
int k=0,n=0;
char * chr;
clrscr();
char str[30];
gets(str);
chr=strtok(str," ,"); //razdelenie predlozenia na slova
while(chr)
{
n = atoi(chr);
if (n) k=k+n;
chr=strtok(NULL," ");
}
return k;
};
//-----------------------------------------
void main()
{char S[80];
clrscr();
STRING A(S);
cout<<"\summa: "<<A.summ();
getch();}