
No.4ベストアンサー
- 回答日時:
★アドバイス
・マイクロソフト社製のコンパイラなら全角文字コードから半角文字コードへの
変換関数があります。→_mbctombb()昔はzentohan()という名前でした。懐かしい。
http://msdn.microsoft.com/ja-jp/library/ms350177 …→『_mbctombb』
これを使えば数字以外にも英字、記号も対応する半角文字に変換できます。
サンプル:
#include <stdio.h>
#include <mbstring.h>
// メイン関数
int main( void )
{
unsigned char kazu[] = "1234567890";
unsigned char *p;
unsigned int moji;
for ( p = kazu ; *p != '\0' ; p += 2 ){
moji = (p[0] << 8) | p[1];
moji = _mbctombb( moji );
printf( "%c%c→%c\n", p[0], p[1], moji );
}
return 0;
}
または
unsigned char kazu[] = "8";
unsigned int moji;
moji = _mbctombb( (kazu[0] << 8) | kazu[1] );
printf( "%s→%c\n", kazu, moji );
※マイクロソフト社製以外のコンパイラや移植性も考えるならご自分で
全角文字→半角文字の変換するルーチンを書いて下さい。仕組みは
既にredfox63さんが回答しています。なお、いろいろな方法があります。
参考URL:http://msdn.microsoft.com/ja-jp/library/ms350177 …
回答有難う御座います。
mbctombbも初めて見た関数です。
自分ではこの関数までたどり着くことが出来ませんでした。
大変参考になり、問題解決いたしました。
どうも有難う御座いました。
No.3
- 回答日時:
質問を見誤ってました。
コードができているならそれを乗せたほうが回答に近づきますよ。
あと、環境がわかったほうがいいです。
Windowsなら
LCMapString
で、全角→半角 の変換が可能です。
Windowsでvisual studioを使ってプログラムを書いています。
LCMapStringですか?初めて見た関数です。
色々調べて物にしたいと思います。
大変参考になりました。
どうも有難う御座います。
No.2
- 回答日時:
# 全角がShift-JISならば ・・・
char wnum[] = "0123456789";
char anum[] = "0123456789";
char kazu[] = "8";
int kazu2 = -1;
char *pPos = strstr( wnum, kazu );
if ( pPos != NULL ) {
int nIndex = (int)( pPos - wnum ) / 2;
char buf[20] = {0};
strcpy( buf, &anum[nIndex], 1 );
kazu2 = atoi( buf );
}
といった具合です
# 適切なヘッダーをインクリュードしてください
この回答への補足
回答有難う御座います。
只今ヘッダをつけてインクルードしてみた結果
ビルドでいくつかエラーが発生してしまいましたので
修正をしながら色々試しています。
C言語初心者なので、redfox63が書いてくださったプログラムを読み取ることが出来ず苦戦しています。
もう少し粘って見ますので、解決いたしましたらまた改めて御礼を述べさせていただきたいと思います。
No.1
- 回答日時:
atol
strtol
この回答への補足
早速の回答有難う御座います。
自分でも色々調べた結果
atoi,atol
を使うのではないか?というところまでは辿り付いたのですが、戻り値が"0"NULLに成ってしまい。
取得したい数値とは異なってしまいます。
テストプログラム
#include <stdio.h>
#include <stdlib.h>
void main()
{
char kazu[]="8";
int kazu2;
kazu2 = atol(kazu);
printf("%d\n",kazu2);
}
早速の回答有難う御座います。
atoiで検索を掛けたところwiki等では
やはりテストプログラムの結果同様
全角数字を入れるとNULLが戻り値と成るようです。
後他に必要な処理が必要な場合何が必要なのでしょうか?
自分でも引き続き探してみます。
宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
COBOL・全角判定
-
英数字のみ全角から半角に変換
-
IEからEdgeへの移行に伴うIMEの...
-
正規表現で、全角文字を半角文...
-
半角/全角文字混在データの分...
-
差し込み印刷について教えてく...
-
CString Format にて全角空白文...
-
封筒の宛先で縦書きの書き方
-
Accessで日付や数値を全角で表...
-
perl 初めてのプログラムにエラ...
-
Accessでのグループ化で全角・...
-
エクセルにMicrosoft Barcode C...
-
char型全角数字から、int型半角...
-
ACCESS VBA でのバイナリデー...
-
ACCESS:半角、全角空白スペース...
-
改行のないテキストを指定バイ...
-
VBA 文字に半角が含まれて...
-
全角英数字の必要性が理解できない
-
VBA 「,」・空白・カタカナ等...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
全角英数字の必要性が理解できない
-
word差し込み印刷 半角カタカ...
-
エクセルの検索が正しくできな...
-
メモ帳の段落の揃え方
-
エクセルにMicrosoft Barcode C...
-
COBOL・全角判定
-
エクセルでの”々”の扱い
-
プログラミングでは、半角括弧...
-
char型全角数字から、int型半角...
-
VB.net、テキストボックス入力...
-
全角/半角キーをSendkeys関数で...
-
明細書の英数字の全角・半角に...
-
ダブルコーテーションの置換
-
いまスマホからカードの申込み...
-
[Excel VBA] ODBCによる外部デ...
-
VBで、String型のデータが、...
おすすめ情報