Visual Studio C++ 6.0 にてあるサンプルPGより修正を行っているのですが
(VS C++6.0初心者です)
CString aaa; // と定義し
aaa = _T("ABCDEFG"); //と文字列をセットしても
// aaaには "A"の先頭1文字しかセットされない
char bbb[20];
strcpy(bbb, "%s", aaa); // としても
// bbbには "A"しかセットされません。
何か設定などでこのようになるのでしょうか?
これをセットした文字列をセット、取得可能とならないものでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんにちは。
以下の様にGetString()を呼び出して見ては。
CString aaa;
aaa = _T("ABCDEF");
TCHAR tc[MAX_PATH];
::_stprintf_s(tc, _T("%s"), aaa.GetString());
ご回答くださった皆様いろいろとありがとうございました。
unicode(2byte文字コード)関係の設定が思い通りにならなかったようです。
基礎から学びなおしたいと思います。
sprintf(bbb,"%S",aaa) と %s を「%S」 に変更したらうまく行きました。
No.4
- 回答日時:
#2、#3の方は
Unicode版を作成する前提で答えてますが
そんなこと考えてないという、貴方のために、、
とりあえず
VC6のプロジェクト設定の、プリコンパイル定義で
MBCSがあるか確認
UNICODEが定義されていると_TマクロはUnicode文字列に置換されるので
MBCSにしてみる。
設定を変えたくないなら
_Tを外せば動くと思います
No.3
- 回答日時:
sprintfを使うつもりだったのなら、_stprintfに変更してください。
(No.2さんの指摘通り変数bbbはTCHAR型です。)
ワイド文字を使うプロジェクト設定になっているのにsprintfを使うと、
このよう現象になります。
(ワイド文字の'A'は、0x41,0x00になるため)
No.2
- 回答日時:
strcpyの使用方法が間違っています。
関数の仕様を確認してください。後、_Tマクロを使用して文字列をセットされているようですので、strcpy ではなく _tcscpy を使用されたほうがよいです。
せっかくの_Tマクロで汎用テキストマッピングを行っているのに、台無しです。
変数bbbについても同様で、char型 の変わりに TCHAR型 を使用されたようがよいです。
No.1
- 回答日時:
>// aaaには "A"の先頭1文字しかセットされない
というのをどうやって確認したんですか?
>strcpy(bbb, "%s", aaa); // としても
>// bbbには "A"しかセットされません。
まずstrcpyの関数仕様を確認しましょう。
この回答への補足
すみません
strcpyではなく
sprintf(bbb,"%s",aaa) としても
aaa に "A"のみとなります。
TRACE( _T("%s"),aaa); で
デバッガで確認すると"ABCDEFG"が出力されます。
aaa,bbbはデバッガ上の値を見て確認しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- C言語・C++・C# VisualStudioのソースコードで漢字を使いたい 4 2022/05/21 10:16
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Java htmlのinput type="date"をgetter setterはString型なのですか 1 2022/04/02 04:03
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
-
4
CStringについて
C言語・C++・C#
-
5
文字列の置換をCStringで(C++)
C言語・C++・C#
-
6
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
7
外部依存関係について
C言語・C++・C#
-
8
charからLPTSTRへの変換方法
C言語・C++・C#
-
9
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
10
CString Format にて全角空白文字連続して格納する方法は?
C言語・C++・C#
-
11
LPSTR型の初期化について
C言語・C++・C#
-
12
コンボボックス表示文字列を取得する場合
C言語・C++・C#
-
13
deleteで開放するとエラーになる原因がわからない
C言語・C++・C#
-
14
[C++]WCHARの1文字目しか表示できない
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
C言語について。
-
VBScriptでXcopyしたいのですが
-
文字列にアルファベットが何文...
-
C言語について。
-
関数によって、MAX_PATHの値が...
-
CSVの禁則文字
-
環境依存文字?をEnumで定義したい
-
ダブルクォーテーションを文字...
-
Excel VBA 差分用語抽出方法に...
-
表にフィルターをかけ、絞った...
-
テキストボックスのvalueとtext...
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
ExcelのINDEXとMATCH関数でスピ...
-
サーバ時刻の取得
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
VB.NETで DataRow()を利用して...
-
数値を通貨型に変換して(1000...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
ダブルクォーテーションを文字...
-
文字列にアルファベットが何文...
-
エクセル関数で記号から記号の...
-
strcmp( )関数について教えて...
-
awk で右端の文字を1文字削除...
-
C言語でギリシャ文字は使えます...
-
右から何文字目にあるか文字位...
-
VBからACCESSのレポートを印...
-
文字数と単語数を数えるプログラム
-
VBScriptでXcopyしたいのですが
-
◆COUNTIF関数またはダブルクォ...
-
秀丸マクロで、ダブルクォーテ...
-
エクセルのマクロでセルに数式...
-
テキストの文字列検索で、検索...
-
CSVの禁則文字
-
環境依存文字?をEnumで定義したい
-
GetDlgItemTextについて
おすすめ情報