Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3. #include <string.h>
  4. #define MAX_CHAR 200
  5. char delim (char input[MAX_CHAR], char *pointers_to_input[40]);
  6. int main(void)
  7. {
  8.     char input[MAX_CHAR];
  9.     char *pointers_to_input[40];
  10.     int word_count = 0;
  11.     int i = 0;
  12.     setlocale(LC_ALL, "");
  13.  
  14.     printf("Ange en sträng:\n");
  15.     gets(input);
  16.     word_count = delim(input, pointers_to_input);
  17.  
  18.     for (i = 0; i < word_count; i++) /* Körs så länge i är 0 eller i < antalet ord, som returnerats från funktionen */
  19.     {
  20.         while(*pointers_to_input[i] != ' ' && *pointers_to_input[i] !='\0') /* Medan pekarens avreferering inte är lika med space eller null-char */
  21.         {
  22.             printf("%c", *pointers_to_input[i]); /* Skriv ut karaktären på den nuvarande positionen */
  23.             pointers_to_input[i]++; /* Stega vidare i arrayen av pekare till den angivna strängen */
  24.         }
  25.         printf("\n");
  26.     }
  27.     return 0;
  28. }
  29.  
  30. char delim (char input[MAX_CHAR], char *pointers_to_input[40])
  31. {
  32.     int i = 0;
  33.     int word_count = 0;
  34.  
  35.     for(i=0; input[i] != '\0'; i++) /* Körs så länge i = 0 och input på position i inte är en null-char */
  36.     {
  37.         while(input[i] == ' ')
  38.         {
  39.             i++;
  40.         } /* Öka på räknaren om mellanslag finns, då dessa inte är av intresse */
  41.  
  42.         if(input[i] != ' ' && input[i] != '\0') /* Är input på position inte ett mellanslag... */
  43.         {
  44.             pointers_to_input[word_count] = &input[i]; /* Skapa en pekare till ordets början som lagras i en separat array */
  45.             word_count++; /* Öka word_count med 1 */
  46.  
  47.             while(input[i] != ' ' && input[i] != '\0')
  48.             {
  49.                 i++;
  50.             } /* Öka på räknaren för alla positioner där det inte finns ett space */
  51.         }    /* detta görs för att endast placera en pekare på ordets början och inte för varje bokstav */
  52.     }
  53.     return word_count; /* Returnera antalet ord */
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement