
Case 1
Text9.Text = "AB";
Text10.Text = "A"; // 1文字目
Text11.Text = "B"; // 2文字目
case 2;
Text9.Text = "Ab";
Text10.Text = "A";
Text11.Text = "b";
case 3;
Text9.Text = "aB";
Text10.Text = "a";
Text11.Text = "B";
case 4;
Text9.Text = "ab";
Text10.Text = "a";
Text11.Text = "b";
上記のようなCase 文を C を使って作成したいのですが,
A~J の大文字とa~jまでの小文字をつかって,2文字の文字列をつくるとき,
1文字目と2文字目が,形態も名称も異なる文字列(例 AB , Ab aB, ab, AC, Ac aC ac, ...)のcase文をつくりたいのですが,
'const char *' 型は 'char *' 型に変換できないというエラーメッセージがでてしまいます.下記プログラムをどう直せばいいかおしえてください.
#include <stdio.h>
#define MAX_NAME 256
int main(void)
{
const char *NAME12 = "Text9";
const char *NAME1 = "Text10";
const char *NAME2 = "Text11";
const char *ALPH = "ABCDEFGHIJabcdefghij";
FILE *fp = NULL;
char f_name[MAX_NAME];
int count = 0;
char *p = ALPH;
char *q = ALPH;
printf("ファイル名:");
scanf("%s", f_name);
fp = fopen(f_name, "w");
if (fp == NULL) {
printf("'%s':ファイルが見つかりません\n", f_name);
} else {
for (p = ALPH; *p != '\0'; p++) {
for (q = ALPH; *q != '\0'; q++) {
if (*p != *q) {
count++;
fprintf(fp, "Case %d\n", count);
fprintf(fp, "%s.Text = \"%c%c\"\n", NAME12, *p, *q);
fprintf(fp, "%s.Text = \"%c%c\"\n", NAME1, *p, *q);
fprintf(fp, "%s.Text = \"%c%c\"\n", NAME2, *p, *q);
}
}
}
fclose(fp);
}
return 0;
}
No.3ベストアンサー
- 回答日時:
★回答者 No.2 さんと同じです。
・『const char *』型と『char *』型のタイプを合わせます。
・つまり、
const char *ALPH = "ABCDEFGHIJabcdefghij";
const char *p = ALPH;
const char *q = ALPH;
・とするか、
char *ALPH = "ABCDEFGHIJabcdefghij";
char *p = ALPH;
char *q = ALPH;
・とします。
・また、ちょっと間違いがあるので指摘します。
・『fprintf(fp, "%s.Text = \"%c%c\"\n", NAME1, *p, *q);』は、
『fprintf(fp, "%s.Text = \"%c\"\n", NAME1, *p );』です。
・『fprintf(fp, "%s.Text = \"%c%c\"\n", NAME2, *p, *q);』は、
『fprintf(fp, "%s.Text = \"%c\"\n", NAME2, *q);』になります。
・以上。分かりますか?
●小言
・このプログラムで出力されるCソースを、何かの処理ルーチンとして使うのですか?
・もっと良い方法がありますけど。→文字列を動的に作成する方法はどうでしょう。
・以下にサンプルを載せておきます。→処理速度は少し落ちます。ループしているので。
●サンプル
void MakeString( int num, const char **text9, const char **text10, const char **text11 )
{
static char buff9[ 4 ], buff10[ 4 ], buff11[ 4 ];
static const char *ALPH = "ABCDEFGHIJabcdefghij";
const char *p = ALPH;
const char *q = ALPH;
for ( p = ALPH ; *p != '\0' ; p++ ){
for ( q = ALPH ; *q != '\0' ; q++ ){
if ( *p != *q ){
if ( --num <= 0 ){
*text9 = buff9; sprintf( buff9, "%c%c", *p, *q );
*text10 = buff10; sprintf( buff10, "%c", *p );
*text11 = buff11; sprintf( buff11, "%c", *q );
return;
}
}
}
}
}
●使用例
const char *Text9;
const char *Text10;
const char *Text11;
MakeString( 123, &Text9, &Text10, &Text11 );
・以上。おわり。
No.2
- 回答日時:
VisualC++のコンパイラでコンパイルしたら
その部分はWarningにはなりましたがErrorではなかったです。
C++ならErrorなのでC++としてコンパイルしたのかな?
修正ですが、
> char *p = ALPH;
> char *q = ALPH;
を
const char *p = ALPH;
const char *q = ALPH;
と直せば良さそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
char*を初期化したいのですが
C言語・C++・C#
-
静的でないメンバ関数の呼び出しが正しくありません
C言語・C++・C#
-
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
-
4
C++ protectedにアクセス不可
C言語・C++・C#
-
5
関数から配列を返すには?
C言語・C++・C#
-
6
Run-Time Check Failure #3というエラーが出ます。
C言語・C++・C#
-
7
1 つ以上の複数回定義されているシンボルが見つかりました
C言語・C++・C#
-
8
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
9
C言語初心者の質問失礼します。
C言語・C++・C#
-
10
適切な変換関数が存在しない???
C言語・C++・C#
-
11
wsprintf関数の使い方について
C言語・C++・C#
-
12
バッファとは何ですか
C言語・C++・C#
-
13
多重定義が起きている?--lnk2005エラー:VC++
C言語・C++・C#
-
14
VisualStudio2022でC言語プログラムで全角文字を使用すると不明なエラーが表示される
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Winsockでの送受信についての質問
-
ネットワークにつながっている...
-
テキストデータをそのままバイ...
-
-'0'の意味について
-
TCHAR文字列?の特定部分の数字...
-
char* を渡したとき、不適切なP...
-
アルファベットの並べ替え
-
C言語のfor文です。 繰り返しの...
-
文字列から空白を取り除きたい...
-
'const char *' 型は 'char *' ...
-
RGB→YUV変換のプログラム
-
charからLPTSTRへの変換方法
-
4バイトでのサムチェックコー...
-
配列をnビットシフトする
-
ftoa の作り方
-
atoi( ) の反対をやりたい
-
簡易grepコマンドの作成を自作...
-
ソースコードエラー
-
コンパイルするとエラーに。C言語
-
エンディアン:2バイトのデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字列から空白を取り除きたい...
-
charからLPTSTRへの変換方法
-
CStringをwchar_tに変換したい
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
C言語のfor文です。 繰り返しの...
-
テキストデータをそのままバイ...
-
絶対パスからのファイル名の切...
-
double型の値をchar配列に変換...
-
型変換
-
間接操作のレベルとは
-
'const char *' 型は 'char *' ...
-
ネットワークにつながっている...
-
YUV⇔RGB変換がうまくいきません。
-
間接参照のレベルが異なっています
-
str系関数を使わずに二つの文字...
-
strncpyと_tcsncpy_sのヌルの扱...
-
c++ 文字列を入力して、一文字...
-
iconv_open失敗
-
干支のプログラム
おすすめ情報