2017-04-19 13 views
-1

こんにちは私はこれらの値を配列ポインタに渡すよりも、ユーザーから3つの文字列入力を受けようとしています。C 3つの文字列入力を受け取り、文字配列に配置する

しかし、私が値を渡すとき、私はnull参照を取得しています。私はこの問題を研究し、strcpy()を使っていくつかの解決策を見つけました。しかし、それらを実装することは今までには成果を上げていません。以下は私のコードです。

どのような提案も素晴らしいでしょう。ありがとう

char s1[50], s2[50], s3[50]; 

printf("Enter 3 strings "); 
scanf("%s %s %s", s1, s2, s3); 

//THESE ARE NULL 
char *argBB[] = { &s1, &s2, &s3, '\0'}; 
+1

これらのコードは、訂正されたコードの簡略化されたバージョンです。これは何"? argBB? s1、s2、s3? –

+5

'scanf("%s%s%s "、&s1、&s2、&s3);' => 'scanf("%s%s%s "、s1、s2、s3); – bruceg

+1

scanfのドキュメントを読み、戻り値。 – Yunnosch

答えて

2

コードにはいくつかの問題があります。あなたのscanfコールの場合、%schar *を想定していますが、あなたはchar *[50]になります。変数argBBchar *[]と定義しますが、3つの正しい変数と定数charを使用して初期化しました。

#include <stdio.h> 

int main() { 
    char str[20]; 

    printf("enter a string\n"); 
    scanf("%s", str); 
    printf("your string is %s\n", str); 
    char *arg[] = {str, ""}; 
    printf("your string is still %s\n", arg[0]); 
} 
関連する問題