SLIDE1

Sunday, October 4, 2015

[c/c++] tìm từ dài nhất trong chuỗi

//code c tìm từ dài nhất trong 1 chuỗi ký tự nhập vào

#include"stdio.h"
#include"conio.h"
#include"string.h"
char *max(char *s)    
{
   char c[100], a[100];
   int i, j, k, max = 0;
   i = 0;  
   while (s[i]!='\o')//s[i] không phải là kí tự cuối cùng
   {
       j = 0; 
       if (s[i] != ' ')//nếu ký tự đang xét khác kí tự trắng
   { 
   while (s[i] != '\o')   //lặp với số lần không biết trước nên dùng while
   {//khi kí tự còn khác kí tự trắng
       if (s[i] == ' ') break;   //điều kiền để kết thúc vòng lặp while là gặp kí tự trắng
       c[j] = s[i];//dùng mảng chuổi c để lưu các kí tự thỏa và tăng i,j lên 1 đơn vị
       j++; i++;//trong vòng lặp đã có lệnh i++; rồi nên khi copy xong không cần dùng lệnh i++;
       //để thực hiện vòng lặp nữa
   } 
   c[j] = '\o';           //kí tự cuối cùng phải là kí tự kết thúc để chuổi có nghĩa
   if (max < strlen(c))  //nếu nó là chuổi dài hơn chuỗi max thì gán giá trị cho max
   {//copy chuỗi vào chuỗi a để lưu
       max = strlen(c);
       gets_s(a, c);
   }
}
else i++;  //nếu ban đầu nó là kí tự trắng thì tăng i để tiếp tục lặp
}    
   return a;
}
void main()
{
   char s[255];
   printf("nhap chuoi: "); fflush(stdin); gets_s(s);
   printf("tu dai nhat: %s\n", max(s));
}