+ 1
How to print looping sting? [C language]
Example (my code): #include<stdio.h> int main(){ char word[100]; int n; scanf("%d", &n); for(int i=1; i<=n; i++){ printf("word %d = ", i) scanf ("%s", word); } for(int i=1; i<=n; i++){ printf("word %d = ", i) printf ("%s", word); } return 0; } Example, when i put 3 case, word 1 = car, word 2 = bike, word 3 = car, why the output is word 1 = car, word 2 = car, word 3 = car?
5 odpowiedzi
+ 1
Briana every time you read a word you save it overwriting the previous.
You have only one array of characters.
You can save all the three words there by using:
fgets( word, 100, stdin );
And then you need strtok() to extrapolate the words from the array of characters.
Or you can use a 2D array of characters
char word[N][L];
wher N is the maximum number of words and L the maximum length of each word
and then you can:
scanf("%s", word[i]);
or you can use an array of strings
char *word[N];
but then you need to allocate memory for each string using malloc()
0
What are the exact inputs and what output you expect?
0
Abhay
Input :
car
bike
car
Output :
word 1 = car
word 2 = bike
word 3 = car
that's my expect
0
Then simply add printf("%s\n",word); to the first for loop and remove the second for loop as well
0
Abhay can we put in different place? (Not in one loop)