Advertisement
dinophanhk

[C] Get number of 's', find word that has max length.

Jun 22nd, 2014
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.32 KB | None | 0 0
  1. // Nhap vao mot chuoi:
  2. // In ra so chu 's' xuat hien trong chuoi
  3. // In ra tu trong chuoi co do dai lon nhat
  4.  
  5. #include "stdio.h"
  6. #include "string.h"
  7.  
  8. int getNumberOfChar(char *input, char charlet);
  9. void setTextForArray(char *input, int start, int end, char *output);
  10.  
  11. int main(void) {
  12.     char inputString[30];
  13.     printf("Nhap vao mot chuoi: ");
  14.     gets(inputString);
  15.    
  16.     // Lay do day chuoi inputString - facebook.com/dinophanhk
  17.     int lengthOfInputString = (int) strlen(inputString);
  18.    
  19.     // Lay so tu trong inputString
  20.     int numberOfElements = 0;
  21.     for (int i = 0; i < lengthOfInputString; i++) {
  22.         if (inputString[i] == ' ') {
  23.             numberOfElements ++;
  24.         }
  25.     }
  26.    
  27.     // Tao so phan tu cho mang result
  28.     char result[numberOfElements][30];
  29.     int iStart, iTemp = 0, iEnd;
  30.    
  31.     iStart = 0;
  32.     for (int i = 0; i <= lengthOfInputString; i++) {
  33.         if (inputString[i] == ' ' || inputString[i] == '\0') {
  34.             iEnd = i;
  35.             setTextForArray(inputString, iStart, iEnd - 1, result[iTemp]);
  36.             iTemp ++;
  37.         }
  38.         if (inputString[i - 1] == ' ') {
  39.             iStart = i;
  40.         }
  41.     }
  42.    
  43.    
  44.     // Lay ra tu dai nhat
  45.     int iMax = 0, iPos = 0;
  46.     for (int i = 0; i <= numberOfElements; i++) {
  47.         if (iMax < (int) strlen(result[i])) {
  48.             iMax = (int) strlen(result[i]);
  49.             iPos = i;
  50.         }
  51.     }
  52.  
  53.     int iMin = 30, iPos2 = 0;
  54.     for (int i = 0; i <= numberOfElements; i++) {
  55.         if (iMin > (int) strlen(result[i])) {
  56.             iMin = (int) strlen(result[i]);
  57.             iPos2 = i;
  58.         }
  59.     }
  60.    
  61.     printf("So tu 's' xuat hien trong chuoi: %d.\n", getNumberOfChar(inputString, 's'));
  62.     printf("Tu dai nhat la: %s.\n", result[iPos]);
  63.     printf("Tu ngan nhat la: %s.\n", result[iPos2]);
  64.    
  65.     return 0;
  66. }
  67.  
  68. int getNumberOfChar(char *input, char charlet) {
  69.     int length = (int) strlen(input), iCount = 0;
  70.     for (int i = 0; i < length; i++) {
  71.         if (input[i] == charlet) {
  72.             iCount++;
  73.         }
  74.     }
  75.     return iCount;
  76. }
  77. void setTextForArray(char *input, int start, int end, char *output) {
  78.     int temp;
  79.     temp = 0;
  80.     for (int i = start; i <= end; i++) {
  81.         output[temp] = input[i];
  82.         temp ++;
  83.     }
  84.     output[temp] = '\0';
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement