假設我有這樣的話:老虎,獅子,長頸鹿。如何存儲並打印2d字符/字符串數組?
我怎樣才能將其存儲在使用for
環和scanf
然後二維數組char
使用for
循環打印字一個一個?
喜歡的東西
for(i=0;i<W;i++)
{
scanf("%s",str[i][0]); //to input the string
}
PS對不起,問這樣一個基本的問題,但我找不到在谷歌一個合適的答案。
假設我有這樣的話:老虎,獅子,長頸鹿。如何存儲並打印2d字符/字符串數組?
我怎樣才能將其存儲在使用for
環和scanf
然後二維數組char
使用for
循環打印字一個一個?
喜歡的東西
for(i=0;i<W;i++)
{
scanf("%s",str[i][0]); //to input the string
}
PS對不起,問這樣一個基本的問題,但我找不到在谷歌一個合適的答案。
首先你需要創建一個字符串數組。
char arrayOfWords[NUMBER_OF_WORDS][MAX_SIZE_OF_WORD];
然後,你需要在最後向oreder輸入字符串到數組
int i;
for (i=0; i<NUMBER_OF_WORDS; i++) {
scanf ("%s" , arrayOfWords[i]);
}
打印它們使用
for (i=0; i<NUMBER_OF_WORDS; i++) {
printf ("%s" , arrayOfWords[i]);
}
char * str[NumberOfWords];
str[0] = malloc(sizeof(char) * lengthOfWord + 1); //Add 1 for null byte;
memcpy(str[0], "myliteral\0");
//Initialize more;
for(int i = 0; i < NumberOfWords; i++){
scanf("%s", str[i]);
}
你可以做到這樣。
1)創建一個字符指針數組。
2)動態分配內存。
3)通過scanf獲取數據。一個簡單的實現低於
#include<stdio.h>
#include<malloc.h>
int main()
{
char *str[3];
int i;
int num;
for(i=0;i<3;i++)
{
printf("\n No of charecters in the word : ");
scanf("%d",&num);
str[i]=(char *)malloc((num+1)*sizeof(char));
scanf("%s",str[i]);
}
for(i=0;i<3;i++) //to print the same
{
printf("\n %s",str[i]);
}
}
#include<stdio.h>
int main()
{
char str[6][10] ;
int i , j ;
for(i = 0 ; i < 6 ; i++)
{
// Given the str length should be less than 10
// to also store the null terminator
scanf("%s",str[i]) ;
}
printf("\n") ;
for(i = 0 ; i < 6 ; i++)
{
printf("%s",str[i]) ;
printf("\n") ;
}
return 0 ;
}
如果你解釋了你的代碼的確切含義,它可能會更有用。 – Nae
如何'str'聲明? –
我感應到緩衝區溢出;) – spartacus