01. Đảo từ trong chuỗi:
/**/
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char *dao(char *s)
{
 int n=strlen(s);
 for(int i=0;i<n/2;i++)
 {
  char t=s[i];
  s[i]=s[n-i-1];
  s[n-i-1]=t;
 }
 return s;
}
char *daotu(char *s)
{
 int dau=0;
 for(int i=0;i<=strlen(s);i++)
 {
  if(s[i]==' '||s[i]=='\0')
  {
   int n=i+dau;
   for(int j=dau;j<n/2;j++)
   {
    char t=s[j];
    s[j]=s[n-j-1];
    s[n-j-1]=t;
   }
   dau=i+1;
  }
 }
 return s;
}
int main()
{
 char s[100];
 printf(" Nhap chuoi: ");
 gets(s);
 printf(" Chuoi vua nhap la: '%s'",s);
 printf("\n Chuoi sau khi dao tu la: '%s'",dao(daotu(s)));
 getch();
}
/**/
02. Hàm trả về chuỗi sau khi in hoa các ký tự đầu từ, các ký tự còn lại được in thường.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char *chuanhoa(char *s)
{
 for(int i=1;i<strlen(s);i++)
 {
  if(s[i-1]==' '&&s[i]>='a'&&s[i]<='z') // nếu nó là chữ thường và trước nó là kí tự trắng
   s[i]=s[i]-32;
  else if(s[i-1]!=' '&&s[i]>='A'&&s[i]<='Z') // nếu nó là chữ hoa và trước nó khác trắng.
   s[i]=s[i]+32;
 }
 if(s[0]>='a'&&s[0]<='z') // riêng cho trường hợp s[0]
  s[0]=s[0]-32;
 return s;
}
void main()
{
 char s[100];
 printf(" Nhap chuoi: ");
 gets(s);
 printf(" Chuoi sau khi chuan hoa la: %s",chuanhoa(s));
 getch();
}
03. Tìm 1 từ dài nhất trong chuỗi:
/* */
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char *tim(char *s)
{
 int cuoi, i=0, j=0, max=0, dem=0;
 char *p=(char*)malloc(100);
 for(; i<=strlen(s); i++)
 {
  if(s[i]!=' '&&s[i]!='\0') dem++;
  else
  {
   if(dem>max)
   {
    max=dem;
    cuoi=i-1;
   }
   dem=0;
  }
 }
 for(i=cuoi-max+1; i<=cuoi; p[j++]=s[i++]);
 p[j]='\0';
 return p;
}
int main()
{
 char s[100];
 printf(" Nhap chuoi: ");
 fflush(stdin);
 gets(s);
 printf(" Chuoi vua nhap la: '%s'",s);
 printf("\n 1 tu co do dai lon nhat trong chuoi la: '%s'",tim(s));
 getch();
}
/* */
04. Xóa chuỗi con từ vị trí k với n kí tự:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char *xoa(char *s,int k,int n)
{
 int d=0;
 for(int i=k-1;i<=strlen(s);i++)
  if(i<k-1+n&&s[i]!=NULL)
   d++;
  else
   s[i-d]=s[i];
 return s;
}
void main()
{
 char s[100];
 int n,k;
 printf(" Nhap chuoi: ");
 gets(s);
 printf(" Nhap vi tri xoa: ");
 scanf("%d",&k);
 printf(" Nhap so ki tu can xoa: ");
 scanf("%d",&n);
 printf("Chuoi sau khi xoa la: %s",xoa(s,k,n));
 getch();
}
05. Đếm số từ trong chuỗi:
#include<stdio.h>
#include<string.h>
#include<conio.h>
int sotu(char *s)
{
 int d=0;
 for(int i=0;i<=strlen(s);i++)
  if(s[i]!=' '&&(s[i+1]==' '||s[i+1]==NULL))
   d++;
 return d;
}
void main()
{
 char s[100];
 printf(" Nhap chuoi: ");
 gets(s);
 printf(" So tu trong chuoi la: %d",sotu(s));
 getch();
}
 
Không có nhận xét nào:
Đăng nhận xét