こんにちは。質問をさせてください。
---------------------------------------------------------------
address = "ここ$http://www.aaaaa.co.jp$moji=dddd$";
---------------------------------------------------------------
変数addressに格納された文字列で、
"http://"の1文字前に"$"があった場合は、
"$"を削除したいのですが、どのようにすれば
いいでしょうか?
※http://の前の"$"以外はそのまま残します。
No.1ベストアンサー
- 回答日時:
#include <iostream>
#include <string>
int main() {
std::string address = "ここ$http://www.aaaaa.co.jp$moji=dddd$";
std::string::size_type pos = address.find("$http://");
if ( pos != std::string::npos ) {
address.erase(pos,1);
}
std::cout << address << std::endl;
return 0;
}
No.2
- 回答日時:
#1の方のはC++ですが、Cの方での考え方を書きます。
文字列の中で"$http://"を検索して、
存在しなければなにもしない。
存在すれば、一個ずつずらせばいいわけです。
つまり、文字列を、一個ずらして自分自身にコピーするわけです。
検索には標準関数strstr()を使います。(教科書を見てください)
ずらしてコピーするにはどうしたらいいかな…。
ただのコピーならstrcpy()という関数があるのですが、
こいつは「コピー元とコピー先が同じだった場合、未定義(プログラムとして問題あり)」という制限があります。
だからwhileかdo whileを使えばいいでしょう。
だいたいこんな感じになると思います。
(コンパイルはしてないので自信なしですが)
char *p;
p = strstr(data, "$http://");
if(p){
do{
*p = *(p+1);
}while(*(p+1));
}
No.3
- 回答日時:
いろいろやり方はあると思いますが
基本的なやり方として
こんな感じでどうでしょう?
#include <stdio.h>
int main()
{
int flag;
char *address = "ここ$http://www.aaaaa.co.jp$moji=dddd$";
char *wk;
for( wk=address , flag=0 ; *wk ; wk++){
if( *wk == '$' && flag == 0){
*wk = *(wk + 1);
flag = 1;
}
else if( flag == 1 ){
*wk = *(wk + 1);
}
}
printf("address = [ %s ] \n", address);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- C言語・C++・C# C言語の質問です、プログラミング初心者です このような文字列があった場合 "abcdef☆ghijk 4 2022/11/22 10:56
- その他(プログラミング・Web制作) Tを主張Sの前後に文字列を追加したものとし、Tを教えて!gooで削除されないようにできる? 2 2023/02/10 15:35
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラーが出ているのですが...
-
空ENTERの判別
-
なぜ、C++の標準ヘッダをインク...
-
【C++】ヘッダ内でstringを格納...
-
#define中の#のエスケープ
-
OpenCVでRAW画像(カラー)を開...
-
指定した文字を削除したい
-
C言語のエラーを修正したい
-
平均値を関数を用いて出力した...
-
JPEGやPNGが読めるLoadImage関数
-
#include "fstream.h"
-
コンパイルできません
-
STLでポインタのリストをsort()...
-
Linux Ubuntu19.10でQt5.14.1の...
-
C言語からgnuplot呼び出し
-
構造体に決められた文字列を入...
-
構造体配列のvectorへの変換と...
-
VC++で文字列から任意の文字を...
-
2重の(?)の#include
-
std::map の const 修飾について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラーが出ているのですが...
-
VC++で文字列から任意の文字を...
-
enumの値から定義名を文字列化...
-
switch文のエラーについて
-
空ENTERの判別
-
なぜ、C++の標準ヘッダをインク...
-
【C++】ヘッダ内でstringを格納...
-
C++での <iostream.h>と<iostre...
-
#include "fstream.h"
-
#define中の#のエスケープ
-
JPEGやPNGが読めるLoadImage関数
-
リモートデスクトップの接続元I...
-
CStringとString
-
string型のフォーマット書式指...
-
std::map の const 修飾について
-
VHDLのsignedとunsignedの違いは?
-
このプログラミング誰か教えて...
-
構造体配列のvectorへの変換と...
-
指定した文字を削除したい
-
構造体に決められた文字列を入...
おすすめ情報