#include <stdio.h>
void del_digit(char str[])
{
unsigned i = 0, count = 0;
while (str[i]) {
if(str[i] >= '0' && str[i] <= '9') {
count++;
}
else {
str[i - count] = str[i];
}
i++;
}
str[i - count] = '\0';
}
str内の全ての数字を削除する関数です。
AB1C9と入力するとABCと表示されます。
まずwhile (str[i])のとこのiは5までいくと思います。
5まで行った時にstr[5]は\0だからelseのほうに行ってstr[5- 2] = str[5];という風に処理されると思います。
その段階でstr[3]には¥0が入っていると思うのですが最後に
str[5- 2] = '\0';でまたstr[3]に\0を入れる処理をしているのはなぜなんでしょうか?
最後のstr[i - count] = '\0';を消して実行してみると
「ABCC9」と表示されてしまいます。
教えてくださいm(_ _ )m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# sprintf()の使い方について 1 2022/08/17 16:16
- C言語・C++・C# C# 浮動小数の数値文字列化 1 2022/04/18 15:15
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
do-while文が禁止される理由
-
C言語forループが完結した場合...
-
猫でもわかる、がわかりません。
-
VBScriptでSQLに接続し、CSV出...
-
if文を使わずに奇数・偶数を判断
-
While文の終わりにセミコロンが...
-
エクセルVBAで Do While (1)って?
-
C言語、whileループを抜け出す...
-
ループを途中で抜けたいのですが。
-
繰り返し文の利点について
-
break文でループを一気に抜ける...
-
無限ループ対策
-
excel VBA if文について
-
マイナスからプラスへ転じた時...
-
Notepad++の関数リスト表示の変...
-
DWORDの実際の型は何でしょうか
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
2÷3などの余りについて
-
構文エラー";"が型の前にあり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
ループを途中で抜けたいのですが。
-
エクセルでC言語のfor文と同じ...
-
break文でループを一気に抜ける...
-
入力した文字列から母音だけを...
-
For文の終了値を関数にしても問...
-
Excel VBAで年度をまたぐ期間の...
-
エクセルVBAで Do While (1)って?
-
C言語forループが完結した場合...
-
if文の中にfor文なのか、for文...
-
PIC のプログラムについて ど...
-
無限ループ対策
-
プログラムで関数は使わない方...
-
for文while文の無限ループの違...
-
猫でもわかる、がわかりません。
-
n重のfor文にするには?
-
C言語、whileループを抜け出す...
-
ゲームオーバーのプログラム
-
PAD図の書き方
-
プログラムの『軽い』と『重い...
おすすめ情報