Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <locale.h>
- #include <string.h>
- #define MAX_CHAR 200
- char delim (char input[MAX_CHAR], char *pointers_to_input[40]);
- int main(void)
- {
- char input[MAX_CHAR];
- char *pointers_to_input[40];
- int word_count = 0;
- int i = 0;
- setlocale(LC_ALL, "");
- printf("Ange en sträng:\n");
- gets(input);
- word_count = delim(input, pointers_to_input);
- for (i = 0; i < word_count; i++) /* Körs så länge i är 0 eller i < antalet ord, som returnerats från funktionen */
- {
- while(*pointers_to_input[i] != ' ' && *pointers_to_input[i] !='\0') /* Medan pekarens avreferering inte är lika med space eller null-char */
- {
- printf("%c", *pointers_to_input[i]); /* Skriv ut karaktären på den nuvarande positionen */
- pointers_to_input[i]++; /* Stega vidare i arrayen av pekare till den angivna strängen */
- }
- printf("\n");
- }
- return 0;
- }
- char delim (char input[MAX_CHAR], char *pointers_to_input[40])
- {
- int i = 0;
- int word_count = 0;
- for(i=0; input[i] != '\0'; i++) /* Körs så länge i = 0 och input på position i inte är en null-char */
- {
- while(input[i] == ' ')
- {
- i++;
- } /* Öka på räknaren om mellanslag finns, då dessa inte är av intresse */
- if(input[i] != ' ' && input[i] != '\0') /* Är input på position inte ett mellanslag... */
- {
- pointers_to_input[word_count] = &input[i]; /* Skapa en pekare till ordets början som lagras i en separat array */
- word_count++; /* Öka word_count med 1 */
- while(input[i] != ' ' && input[i] != '\0')
- {
- i++;
- } /* Öka på räknaren för alla positioner där det inte finns ett space */
- } /* detta görs för att endast placera en pekare på ordets början och inte för varje bokstav */
- }
- return word_count; /* Returnera antalet ord */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement