
No.3ベストアンサー
- 回答日時:
strの中身から数字をなくす方法
#include<stdio.h>
void del_digit(char *str);
int main(void)
{
char *str = "abcd234678efg";
del_digit(str);
puts(str);
return 0;
}
void del_digit(char *str)
{
char *ptr = str;
int i = 0;
while(*ptr != '\0')
{
if(*ptr < '0' || *ptr > '9')
{
*(str+i) = *ptr;
i++;
}
ptr++;
}
*(str+i) = '\0';
}
No.4
- 回答日時:
まあ、簡単に2バイトコードとか考えないで作るなら。
2バイトコード判定するなら2バイトコードの後の1バイトは判定しない様に処理増やして。
void del_digit(char *str)
{
char *ptr = str;
/* 引数のNULLチェック */
if(str == NULL){
return;
}
while(*str){
if(((*str) < '0') || ('9' < (*str))){
/* 数字と一致しなければコピー */
*ptr = *str;
ptr++;
}
str++;
}
*ptr = NULL;
}
No.2
- 回答日時:
ひとつの方向性としては、
与えられた文字列と同じサイズのバッファを別途用意し、与えられた文字列の先頭から1文字ずつたどりながら数字以外であったらその文字を用意したバッファに書き込んでいく。最後までたどり終わったらバッファにお望みの文字列が入っているはずです。
というのがアルゴリズムとしてはわかりやすいとおもいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
int型の文字列について
-
WM_CHAR or WM_KEYDOWN の「wPa...
-
ポインタを使用 [数字列を数値...
-
c言語関数の(1)~(5)までの部分...
-
char*を初期化したいのですが
-
C++Builder 2009 テキスト...
-
WritePrivateProfileString
-
C言語について質問です
-
C言語のchar型配列を計算させる...
-
しつこい様ですが、再度ポイン...
-
Vectorでヒープエラーが出る
-
エクセルのMID関数は、C言語では?
-
CStringからchar*への型変換に...
-
セグメントエラー
-
関数から配列を返すには?
-
C言語 配列の長さの上限
-
VBAのプログラムで、DIAG = 1# ...
-
【速いブラインドタッチ】手を...
-
VBA基本構文の作り方 2列の...
-
Cのエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringからchar*への型変換に...
-
char*を初期化したいのですが
-
C言語にて構造体のメンバがNULL...
-
C言語のintとcharの違いってな...
-
DWORDとcharの変換
-
C++17で、unsigned char * 配列...
-
char 文字列型 の表現範囲が-12...
-
new charとnew char[N]の違いは?
-
char型にint型の数値を代入する。
-
動的メモリの初期化方法について。
-
小数点入りの文字列をfloat型に...
-
文字型配列に格納した空白の切捨て
-
fstream型オブジェクトを関数の...
-
C++Builder 2009 テキスト...
-
文字列の途中から途中までを抽出
-
C言語の文字リテラル中の16進文...
-
エクセルのMID関数は、C言語では?
-
文字列のswap
-
void型へのポインタ
-
VC++ char[10]へのCString値の代入
おすすめ情報