C言語で初歩的な質問なのですが#include<stdio.

Writer: admin Type: spinning Date: 2019-01-24 00:00
C言語で初歩的な質問なのですが#include<stdio.h>int main(){ char mojiretu[10];mojiretu[0]='j\0'; //ここ!}ここ!というコメントのある行の書き方はこれでいいのでしょうか?それとも、'j\0'ではなく"j\0"とするべきですか?共感した0###次のようにすると良いですよ。mojiretu[0]='j';mojiretu[1]='\0';【それとも、'j\0'ではなく"j\0"とするべきですか?】strcpy(mojiretu, "j");これでも良いです。ナイス0
###この質問は投票によってベストアンサーに選ばれました!###> ここ!というコメントのある行の書き方はこれでいいのでしょうか?コンパイルエラー。単一引用符は 1文字 のリテラル用であって、複数文字なんてありえない。> それとも、'j\0'ではなく"j\0"とするべきですか? それもコンパイルエラー。C言語には 文字列型 はありません。文字型 の 配列で代用します。そして、配列に対する代入文サポート はないから。# 配列の個々要素 の代入文は可。どうしても、場所取りchar mojiretu[10]; と、事後に代入 と分けたいなら mojiretu[0]='j'; mojiretu[1]='\0';と個々にやるか、同じことをライブラリ関数で strcpy(mojiretu, "j"); // 終端文字 '\0' は必ずつくとするか。でも、個人的には、初期化 を行うことを勧めたい。 char mojiretu[10] = "j\0"; // 場所取りと不可分一体C言語プログラマは・初期化・(事後の)代入を区別しない(両方とも漠然と 「初期化」と呼ぶ)人が多いけれど、別物です。初期化構文の = は、「代入文」では、*ありません*。# 同じ記号 = があるというだけで、区別しない人も多いけど。ナイス0
###C言語では文字列の終端は '\0' と書きます。'j\0' と書いてはいけません。ナイス0

 

TAG