
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
GetDlgItemTextについて
-
vb6の初心者です。特定の文字に...
-
VS C++6.0のCString にて先頭1...
-
文字列にアルファベットが何文...
-
ダブルクォーテーションを文字...
-
関数によって、MAX_PATHの値が...
-
VB2008 文字列に等間隔にスペ...
-
URL抽出
-
C言語でギリシャ文字は使えます...
-
エクセル関数で記号から記号の...
-
ExcelVBAを使って、値...
-
[エクセル]連続する指定範囲か...
-
DataGridView1のcellで計算
-
エクセルで、絶対値の平均を算...
-
表にフィルターをかけ、絞った...
-
i=cells(Rows.Count, 1)とi=cel...
-
VBA実行後に元のセルに戻りたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
ダブルクォーテーションを文字...
-
文字列にアルファベットが何文...
-
右から何文字目にあるか文字位...
-
GetDlgItemTextについて
-
お願いです!!
-
エクセル関数で記号から記号の...
-
strcmp( )関数について教えて...
-
VBScriptでXcopyしたいのですが
-
◆COUNTIF関数またはダブルクォ...
-
vb6の初心者です。特定の文字に...
-
vb.net IVSの漢字を1文字切り...
-
C言語でギリシャ文字は使えます...
-
環境依存文字?をEnumで定義したい
-
awk で右端の文字を1文字削除...
-
秀丸マクロで、ダブルクォーテ...
-
URLで使える文字・使えない...
-
VS C++6.0のCString にて先頭1...
おすすめ情報