質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

645閲覧

2次元配列で全角文字列を表示させる問題について

gyoruo

総合スコア61

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2020/08/19 08:33

2次元配列で全角文字列を表示させたいのですが、printf()は¥0で読み込みを終了してしまうため、「うえ」が表示されません。

解決策としては、文字列探査を行い2回目の¥0が見つかるまで表示し、それ以前の¥0をスキップする方法などがあるかとは思います。
もし、他にもっとスマートなやり方があったり、便利な関数を知っている人はアドバイス等をお願い致します。

C

1#include <stdio.h> 2 3int main() { 4 char a[2][7] = {{"あい", "うえ"}, {"おか"}}; 5 printf("%s\n", a[0]); 6 printf("%s\n", a[1]); 7 8 return 0; 9}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/08/19 08:41

単純に{{"あい"}, {"うえ"}, {"おか"}}というような2次元配列にしたくない理由は、どのようなものでしょうか?
gyoruo

2020/08/19 08:47

他で考えているプログラムの仕様上そうせざるおえないので、、、
maisumakun

2020/08/19 08:53

「他で考えているプログラム」の方を変える、という選択肢はないのですか?
gyoruo

2020/08/19 10:05

それは現状できないです。。。
guest

回答2

0

ベストアンサー

char a[2][7] = {{"あい", "うえ"}, {"おか"}};
そもそもこれって3次配列では…?

こうすれば全部出ます。

C

1 char a[2][2][7] = {{"あい", "うえ"}, {"おか"}}; 2 printf("%s\n", a[0][0]); 3 printf("%s\n", a[0][1]); 4 printf("%s\n", a[1][0]);

投稿2020/08/19 09:31

編集2020/08/19 11:13
amiya

総合スコア1218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gyoruo

2020/08/19 10:11

ご回答ありがとうございます! そのプログラムで動かしてみましたが、[2][2][5]では全角なのでバイト数が足りずに文字化けの箇所がありましたが、[2][2][7]で動かすとうまくいきました! 確かに、考えてみれば3次元ですよねこれ、、、
amiya

2020/08/19 11:12

あら、[7]にしたつもりが直ってませんでした^^;
guest

0

#include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ char a[]="あい うえ"; char b[]="おか"; printf("%s",a); printf("\n"); printf("%s",b); return 0; }

やるとしたらこうですかね

投稿2020/08/19 09:17

編集2020/08/19 09:46
yusuke-fusegi

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gyoruo

2020/08/19 10:14

ご回答ありがとうございます! ご参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問