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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
C言語で全角文字を扱いたいのですが、
C言語・C++・C#
-
【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法
C言語・C++・C#
-
全角半角変換 C++/CLI
C言語・C++・C#
-
-
4
数字以外が入力されたらエラー文を出したい。
C言語・C++・C#
-
5
C言語 exitの使い方
C言語・C++・C#
-
6
ファイル内のデータを1行削除する方法
C言語・C++・C#
-
7
半角、全角の判別方法
C言語・C++・C#
-
8
#define _CRT_SECURE_NO_WARNINGS について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
VBA 文字に半角が含まれて...
-
char型全角数字から、int型半角...
-
エクセルにMicrosoft Barcode C...
-
word差し込み印刷 半角カタカ...
-
メモ帳の段落の揃え方
-
C言語のコンパイルエラーなん...
-
COBOL・全角判定
-
IEからEdgeへの移行に伴うIMEの...
-
封筒の宛先で縦書きの書き方
-
.NET3.5におけるキーボードの「...
-
エクセルの検索が正しくできな...
-
VBでのカナの自動入力方法について
-
Excelの中に全角ひらがな、漢字...
-
Pythonにおける全角括弧の正規表現
-
全角英数字の必要性が理解できない
-
COBOLで全角変換を行いた...
-
いまスマホからカードの申込み...
-
全角スペースを削除するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
COBOL・全角判定
-
エクセルにMicrosoft Barcode C...
-
プログラミングでは、半角括弧...
-
IEからEdgeへの移行に伴うIMEの...
-
word差し込み印刷 半角カタカ...
-
全角英数字の必要性が理解できない
-
封筒の宛先で縦書きの書き方
-
メモ帳の段落の揃え方
-
エクセルの検索が正しくできな...
-
VB.net、テキストボックス入力...
-
ダブルコーテーションの置換
-
CString Format にて全角空白文...
-
.NET3.5におけるキーボードの「...
-
エクセルでの”々”の扱い
-
VBで、String型のデータが、...
-
「一角」って何でしょうか
-
コマンドプロンプト 全角を含ん...
おすすめ情報