abcdefacdeeabとあるとします。
abと文字が来るときだけabを++に置き換えたいのです。
aだけ変えるのを考えたのですが
bがある場合は+
とbがない場合はaも変えない
と言うのが考えつきません。
char *a;
int i;
fgets=(moji,100,stdin);
*a=moji[100];
for( i = 0 ; ; i++ )
{
if( *(a+i) == 'a' )
{
moji[i]='+';
else
{
moji[i]=*( a + i );
}
if(*( a + i ) == '\0');
break;
}
見にくいですがよろしくお願いします。
No.1
- 回答日時:
#include <stdio.h>
#include <string.h>
int main() {
char data[] = "abcdefacdeeab";
char* position = data;
while ( position = strstr(position,"ab") ) {
*position++ = '+';
*position++ = '+';
}
puts(data);
return 0;
}
No.2
- 回答日時:
char *a , moji[100];
fgets(moji,100,stdin);
a = moji ;
if (*a != 0) {
for(;*(a+1) !=0 ;a++ ) {
if( *a == 'a' && *(a+1) == 'b') {
*a = '+' ;
*(a+1) = '+' ;
}
}
}
二文字位ならハードコーディングでも問題無いと思う。
No.3ベストアンサー
- 回答日時:
#2さんの改良。
BM法っぽくして同じ文字を2度見るのをやめてスピードアップ。char *a , moji[100];
fgets(moji,100,stdin);
a = moji ;
if (*a != 0) {
for(;*(a+1) !=0 ;a++ ) {
if( *a == 'a' ) {
if ( *(a+1) == 'b') {
*a = '+' ;
*(a+1) = '+' ;
}
} else {
a++;
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- Visual Basic(VBA) VBA シート上にドロップダウンリストを作り、予め指定値をセットしたいのですが 1 2023/03/25 15:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Visual Basic(VBA) VBA GetAttrについて教えてください 2 2022/12/22 15:25
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ポインタのポインタ」を使っ...
-
C言語のfor文です。 繰り返しの...
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
c++ 文字列を入力して、一文字...
-
int main()の・・・
-
間接操作のレベルとは
-
charからLPTSTRへの変換方法
-
str系関数を使わずに二つの文字...
-
3桁区切(コンマ)記号をつけ...
-
下記のプログラムがコンパイラ...
-
atoi( ) の反対をやりたい
-
配列をnビットシフトする
-
英単語をアルファベット順に
-
c言語配列の結合についてです。...
-
バイトスワップをやりたい
-
-'0'の意味について
-
CStringをwchar_tに変換したい
-
const char** p;のとき、free(p...
-
間接参照のレベルが異なっています
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
charでの計算?
-
配列をnビットシフトする
-
'const char *' 型は 'char *' ...
-
型変換
-
テキストデータをそのままバイ...
-
文字列から空白を取り除きたい...
-
CStringをwchar_tに変換したい
-
絶対パスからのファイル名の切...
-
fgetsなどのときのstdinのバッ...
-
ネットワークにつながっている...
-
str系関数を使わずに二つの文字...
-
3桁区切(コンマ)記号をつけ...
-
atoi( ) の反対をやりたい
-
double型の値をchar配列に変換...
-
C言語のfor文です。 繰り返しの...
-
switch文で文字を比較すること...
-
ファイル名である文字列からbas...
-
c++ 文字列を入力して、一文字...
-
strncpyと_tcsncpy_sのヌルの扱...
おすすめ情報