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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
CStringについて
C言語・C++・C#
-
-
4
GetPrivateProfileStringでiniファイル読込む処理を詳しく知りたいのですが・・・
C言語・C++・C#
-
5
文字列の置換をCStringで(C++)
C言語・C++・C#
-
6
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
7
外部依存関係について
C言語・C++・C#
-
8
LPSTR型の初期化について
C言語・C++・C#
-
9
CString Format にて全角空白文字連続して格納する方法は?
C言語・C++・C#
-
10
deleteで開放するとエラーになる原因がわからない
C言語・C++・C#
-
11
ワイド文字のバイト数が取得できず困っています。
C言語・C++・C#
-
12
CString型 全角半角を意識せずに「1文字」ずつ取り出す
C言語・C++・C#
-
13
適切な変換関数が存在しない???
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列の後ろから必要分だけ削...
-
Accessのクエリで、replace関数...
-
◆COUNTIF関数またはダブルクォ...
-
右から何文字目にあるか文字位...
-
ボイヤ・ムーア法のアルゴリズ...
-
【VB.net】特定の文字から7文字...
-
文字数と単語数を数えるプログラム
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
ExcelのINDEXとMATCH関数でスピ...
-
i=cells(Rows.Count, 1)とi=cel...
-
VB.NETで DataRow()を利用して...
-
VBAでセルをクリックする回...
-
Excelのハイパーリンクにマクロ...
-
Excelのセルの色指定をVBAから...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
【Excel VBA】先頭の「0」飛び...
-
VBA:小数点以下の数字を取得で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
ダブルクォーテーションを文字...
-
エクセル関数で記号から記号の...
-
文字列にアルファベットが何文...
-
awk で右端の文字を1文字削除...
-
strcmp( )関数について教えて...
-
C言語でギリシャ文字は使えます...
-
CSVの禁則文字
-
URLで使える文字・使えない...
-
vb.net IVSの漢字を1文字切り...
-
VS C++6.0のCString にて先頭1...
-
環境依存文字?をEnumで定義したい
-
GetDlgItemTextについて
-
アルファベットを含むランダム...
-
◆COUNTIF関数またはダブルクォ...
-
VB 文字判別
-
文字数と単語数を数えるプログラム
-
VBScriptでXcopyしたいのですが
おすすめ情報