/*Определить количество латинских букв в строке a[m] с учетом регистра*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int kol(char *a);
void main()
{
char *a;
int m;
printf("Enter max dlinu stroki\n");
scanf("%d",&m);
a=(char*)malloc(m*sizeof(char));
int n;
printf("Enter stroku\n");
flushall();
gets(a);
n=kol(a);
printf("Kol-vo latin bukv = %d",n);
getch();
free(a);
}
int kol(char *a)
{
int i,n=0;
for(i=0;i<strlen(a);i++)
if ((a[i]>='a'
&& a[i]<='z')||(a[i]>='A' && a[i]<='Z'))
n++;
return n;
}
/*Программа упорядочивает n слов по алфавиту (только для латиницы)*/
#include<stdafx.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct word
{
char w[20];
};
void sort(word *a,int n);
void main()
{
word *s;
int i,n;
printf("Enter a number of words: ");
scanf("%d",&n);
s=(word*)malloc(n*sizeof(word));
printf("Enter words\n");
for(i=0;i<n;i++)
{
flushall();
gets(s[i].w);
}
sort(s,n);
printf("\n");
printf("Sorting completed:\n");
for(i=0;i<n;i++)
puts(s[i].w);
getch();
}
void sort(word *a,int n)
{
int i,j,im,k,fl=1;
word temp;
char min[20];
for(i=0;i<n-1;i++)
{
strcpy(min,"z");
for(j=i;j<n;j++)
{
if(strcmp(a[j].w,min)<0)
{
strcpy(min,a[j].w);
im=j;
temp=a[im];
a[im]=a[i];
a[i]=temp;
}
}
}
}
/*Вывести на экран подстроку, содержащую максимальное число подряд идущих
цифр.*/
#include <stdafx.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void change(char *a,char *b);
int main()
{
char a[20];
char *b;
int i,j;
printf("Enter text\n");
gets(a);
flushall();
b=(char*)calloc(strlen(a),sizeof(char));
change(a,b);
printf("Changed text \n");
puts(b);
getch();
free(b);
return 0;
}
void change(char *a,char *b)
{
int i,im,m,j=0,fl=0;
int k=0,
max=0;
for (i=0;i<strlen(a);i++)
{
if (*(a+i)>'0'&&*(a+i)<'9')
{
k++;
if(fl==0)
im=i;
fl=1;
}
else
if(k>max)
{
max=k;
m=im;
k=0;
fl=0;
}
}
if(k>max)
{
max=k;
m=im;
}
for (i=m;i<m+max;i++)
{
*(b+j)=*(a+i);
j++;
}
}
/*В строке состоящий из не более чем 20 символов определить наиболее часто
встречающуюся цифру.*/
#include "stdafx.h"
#include "conio.h"
#include "string.h"
int func( char *s);
int main()
{
char s[20];
printf("Vvedite stroky\n");
gets(s);
flushall();
printf("Iscomoe chislo %d", func(s));
getch();
return 0;
}
int func(char *s)
{
int i,j,id,n[10];
int max=-1;
for (i=0; i<10; i++)
n[i]=0;
for (i=0; i<10; i++)
for (j=0; j<20; j++)
if (s[j]==('0'+i))
n[i]=n[i]+1;
for (i=0; i<10; i++)
if (n[i]>max)
{
max=n[i];
id=i;
}
return id;
}
/*Из строки a[20] вычеркнуть символ, введенный с клавиатуры.*/
#include <stdafx.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void change(char *a,char *b,char n);
int main()
{
char
a[20];
char *b;
int i,j;
char n;
printf("Enter text\n");
gets(a);
flushall();
printf("Enter symbol\n");
scanf("%c",&n);
flushall();
b=(char*)calloc(strlen(a),sizeof(char));
change(a,b,n);
printf("Changed text \n");
puts(b);
getch();
free(b);
return 0;
}
void change(char *a,char *b,char n)
{
int i;
int k=0;
for (i=0;i<strlen(a);i++)
if (*(a+i)!=n)
{
*(b+k)=*(a+i);
k++;
}
}
/*В строке найти подстроку, включающую наибольшее количество подряд идущих
цифр, и распечатать слово, состоящее из элементов данной подстроки.*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
void find(char*s,char*res);
int main()
{
char s[40],w[40];
printf("Enter srtoku:\n");
gets(s);
find(s,w);
printf("Iskomoe slovo:\n");
puts(w);
getch();
return 0;
}
void find(char*s,char*res)
{
int i,st,mi,max,c;
max=0;
c=0;
for(i=0;i<strlen(s);i++)
if(s[i]>='0'&&s[i]<='9')
{
if(c==0)
st=i;
c++;
}
else
{
if(c>max)
{
max=c;
mi=st;
}
c=0;
}
if(c>max)
{
max=c;
mi=st;
}
for(i=0;i<max;i++)
res[i]=s[mi+i];
res[max]='\0';
}
/*Определить количество подстрок st в строке s.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
int kol(char s[],char st[]);
void main()
{
char s[30], st[30];
printf("Enter stroku\n");
gets(s);
flushall();
printf("Enter podstroku\n");
gets(st);
printf("Kol-vo podstrok: ");
printf("%d",kol(s,st));
getch();
}
int kol(char s[], char st[])
{
int i,j,n=0;
for(i=0;i<strlen(s)-strlen(st)+1;i++)
{
int z=0;
for(j=0;j<strlen(st);j++)
{
if(s[i+j]==st[j])
z++;
if(z==strlen(st))
n++;
}
}
return n;
}
/*Определить количество подстрок st в строке s.*/
#
include<stdafx.h>
# include<stdio.h>
# include<string.h>
# include<conio.h>
int kp(char s[], char st[]);
void main()
{
char s[30], st[30];
gets(s);
flushall();
gets(st);
printf("%d",kp(s,st));
getch();
}
int kp(char s[], char st[])
{
int n;
char*p;
p=strstr(s,st);
n=0;
while (p)
{
n=n+1;
p=strstr(p+1,st);
}
return(n);
}
/* Составить массив из слов преложения, начинающихся на заданную букву.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
int masstr(char *s,char st[][50],char
c);
void main()
{
char s[50], st[25][50];
char c;
printf("Enter bukvu\n");
scanf("%c",&c);
flushall();
printf("Enter stroku\n");
gets(s);
int k=masstr(s,st,c);
printf("Iskomye slova\n");
for (int
i=0;i<k;i++)
puts(st[i]);
getch();
}
int masstr(char *s,char st[][50],char c)
{
int k=0;
char *p;
p=strtok(s," ");
while (p)
{
if(p[0]==c)
{
strcpy(st[k],p);
k++;
}
p=strtok(NULL," ");
}
return k;
}
/*Из строки вычеркнуть символ, введенный с клавиатуры.*/
#include <stdafx.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void change(char *a,char *b,char n);
int main()
{
char a[20];
char *b;
int i,j;
char n;
printf("Enter symbol\n");
scanf("%c",&n);
flushall();
printf("Enter text\n");
gets(a);
flushall();
b=(char*)calloc(strlen(a),sizeof(char));
change(a,b,n);
printf("Changed text \n");
puts(b);
getch();
free(b);
return 0;
}
void change(char *a,char *b,char n)
{
int i;
int k=0;
for (i=0;i<strlen(a);i++)
if (*(a+i)!=n)
{
*(b+k)=*(a+i);
k++;
}
}
/*В массиве из 6 слов упорядочить символы в каждом слове по алфавиту*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
void abc (char s[]);
void main()
{
char s[6][20];
int i;
printf("Enter slova\n");
for (i=0;i<6;i++)
gets(s[i]);
for (i=0;i<6;i++)
abc(s[i]);
printf("\nNew slova\n");
for (i=0;i<6;i++)
puts(s[i]);
getch();
}
void abc(char s[])
{
int n;
char temp;
n=strlen(s);
for (int i =0;
i<n-1; i++)
for (int j=i; j<n;
j++)
if (s[i]>s[j])
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
/*Упорядочить 6 слов в массиве по алфавиту*/
# include <stdafx.h>
# include <stdio.h>
# include <string.h>
# include <conio.h>
# include <stdlib.h>
void abc(char s[][20], int n);
void main()
{
char s[6][20];
int i;
printf("Enter massive\n");
for (i=0; i<6; i++)
{
flushall();
gets(s[i]);
}
printf("\nNew massive\n");
abc(s,6);
for (i=0;i<6;i++)
puts(s[i]);
getch();
}
void abc(char s[][20], int n)
{
int i,j,im;
char min[20];
for (i=0;i<n-1;i++)
{
im=i;
strcpy(min,s[i]);
for(j=i+1;j<n;j++)
if(strcmp(min,s[j])>0)
{
im=j;
strcpy(min,s[j]);
}
strcpy(s[im],s[i]);
strcpy(s[i],min);
}
}
/*Упорядочить n слов в алфавитном порядке (только латиница)*/
#include<stdafx.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
struct word
{
char w[20];
};
void sort(word *a,int n);
void main()
{
word *s;
int i,n;
printf("Enter a number of words: ");
scanf("%d",&n);
s=(word*)malloc(n*sizeof(word));
printf("Enter slova:\n");
for(i=0;i<n;i++)
{
flushall();
gets(s[i].w);
}
sort(s,n);
printf("Sorting completed:\n");
for(i=0;i<n;i++)
puts(s[i].w);
getch();
}
void sort(word *a,int n)
{
int i,j,im,k,fl=1;
word temp;
char min[20];
for(i=0;i<n-1;i++)
{
strcpy(min,"z");
for(j=i;j<n;j++)
{
if(strcmp(a[j].w,min)<0)
{
strcpy(min,a[j].w);
im=j;
temp=a[im];
a[im]=a[i];
a[i]=temp;
}
}
}
}