よろしくお願い致します。

CString型の文字の最後の1文字を’¥0’に変更するにはどうすれば良いのでしょうか?

CStringのことが良く分かっていないので、質問の仕方が変かも知れませんがお教えください。

今は仕方なしに、こんな感じでやってます。

CStringm_InputData;
char moji[100];
int n;

strcpy(moji,m_InputData);
n=strlen(moji);
moji[n-1]='\0'
m_InputData=moji;

A 回答 (8件)

最後の1文字を削除したいということでしょうか?



m_InputData.Delete(m_InputData.GetLength() - 1);

# 最後の1文字が漢字とかだとまずいですが。

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

正確には最後から2文字以降を削除したいのですが、参考サイトを見てもすぐには理解できませんでした。

教えていただけると大変助かります。
どうかお願い致します。

お礼日時:2003/09/13 21:34

やりたいことはともかくとしてCStringを使っているのにメンバ関数を活かしてないような気がしますが。

CStringは文字列を扱うのに非常に便利ですからいくつか関数を覚えて使うようにすると良いと思います。

特定文字を置き換えるならこの場合はGetLength()で-2でも良いのかもしれませんが、Find()かReverseFind()あるいはFindOneOf()で見つけてSetAt()で置き換えるとか。

見つけた部分から前だけを抽出するならFind()で取ったnCountを使ってLeft()で抽出、=で代入するとか。

文字数を削るなら\0代入でなく、Mid()で割って=で代入するとか。

ホワイトスペース(空白、改行、タブ)を取り除くならTrimRight()を使うとか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2003/09/14 17:36

要はLFをCRLFに変換したいということですよね


変換は出来たみたいですが、一つ確認していただきたい
その読み込んでいるファイルの改行コードはLFなのですか?
Windows環境で使われるテキストファイルはCRLFが標準です。
しかしCでは伝統的に改行コードはLFなので、
WindowsのCにはCRLFをLFに変換して読み込む
「テキストモード」というのがあります。
テキストモードで読み込んでいませんか?

もしそうなら、何も変換せずに読み込む
「バイナリモード」でファイルをオープンすれば
うまくいくのではないでしょうか

fopenなら"r"ではなく"rb"を指定
CFileならCFile::typeBinaryを指定すればいいのかな?
(MFCはよく知らない)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2003/09/14 17:36

mydata1[n-1]='\0'; はfgets()の末尾の'\n'をカットするものですよね。


(厳密には'\n'かどうかの検査をすべきと思います)
http://www.bohyoh.com/CandCPP/C/Library/fgets.html

>空の1行を削除するために今回の処理をしています
取得した文字列に改行コードを付加しているので、最後は改行で終わりますね。
これでいかがでしょうか?

for(i=0;;i++){
 fgets(mydata1,256,fin);
 n=strlen(mydata1);
 if(mydata1[n-1]=='\n')
  mydata1[n-1]='\0';
 if(strcmp(mydata1,"end")){
  if(i==0)
   m_InputData=mydata1;
  else
   m_InputData=m_InputData+crlf+mydata1;
 }

}

参考URL:http://www.bohyoh.com/CandCPP/C/Library/fgets.html

この回答への補足

回答ありがとうございます。

教えて頂いたコードは理解できました。
しかしながら、実際にはテキストファイルに書き込むときに特殊な処理をしているため、教えていただいたコードではエディットボックスに表示するとゴミが付きます。
あああ
いいい・・  ←ゴミの数は適当

それで結局 moji[n-2]='\0' というおかしな処理が必要になりました。

MovingWalkさんのコードの考え方は、今後の参考にさせて頂きたいと思います。

また、最初の質問に戻って、今回知りたかったCStringでの処理の仕方については、yoppiiさんに教えて頂いたことで解決です。

今回の質問はこれで解決、終了にさせて頂きたいと思います。

#今回の質問の内容より前に行っているテキストファイルに書き込む処理を私自身が正確に理解出来ていない為、適確な質問が出来ず申し訳ありませんでした。
自分自身で調べて分からなければ、改めて質問します。
ちなみに、テキストファイルに書き込む時に以下のような感じで処理しています。
aaaa=aaaa+bb+"\x0a"+aaa+"\x0d\x0a"+"end"+crlf;

補足日時:2003/09/14 08:14
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今日は疲れているのでもう寝ます。
(朝型タイプなのですみません)

教えていただいたことは明日また確認して連絡させていただきます。

一応、CStingでのコードは#5の補足に書いた方法でうまく行きました。
結果がうまくいっただけで、細かい分かっていない部分は勉強したいと思います。

お礼日時:2003/09/13 23:43

#3 のコードで「サンプルプログラムと同じ処理」


が出来るのですが。だめですか?

> 正確には最後から2文字以降を削除したいのですが、

もう一度やりたいことを確認したいのですが,
"ABCDE" が "ABC" になればいいのでしょうか?

日本語の扱いはどうしましょうか?
考慮しなくてもいいですか?
それとも,
"あいうえお" が "あいう" になって欲しいですか?

この回答への補足

参考サイトを調べてようやく出来ました。

m_InputData.Insert(m_InputData.GetLength() - 2, '\0');で同じことが実現でき、実行結果もうまくいきました。

補足日時:2003/09/13 23:31
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

適確に疑問点を質問できず、気を使わせて申し訳ありません。
#4のお礼欄にもう少し詳しく質問内容を書いておきました。

これでお分かりでしたら、よろしくお願い致します。

お礼日時:2003/09/13 22:39

>サンプルプログラムと同じことが出来れば良いです



何のためにサンプルプログラムのようなことが必要なのかをお聞きして
いるんです。サンプルプログラムのままがよければそれでいいはずです。

moji[n-1]='\0'
C文字列の最後の文字を消すってことですよね。

こうすれば、
「CString型の文字の最後の1文字を’¥0’に変更する」
ことになるんですか?(文字サイズが小さくなることとは意味が少し違います)

この回答への補足

すみません。1部訂正です。

<誤り>
あああ
いいい・

<訂正>
あああ
いいい
     ←空の1行が入る
|    ←カーソルの位置

空の1行を削除するために今回の処理をしています。

補足日時:2003/09/13 22:45
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>何のためにサンプルプログラムのようなことが必要なのかをお聞きしているんです。

うまく説明できませんがご容赦ください。

<仕様>
1.テキストファイルから1行づつ読み込む。
2.読み込んだ文字列をエディットボックスに改行して表示できるように、1行読み込む毎に"\x0a"を追加しました。
while(1){
   fgets(mydata1,256,fin);
   n=strlen(mydata1);
   mydata1[n-1]='\0';
   if(strcmp(mydata1,"end")){
     m_InputData=m_InputData+mydata1+crlf;
   }


3.実行してみると、最終行にだけゴミ・が付きました。

あああ
いいい・

4.そのゴミを取るために、次のようにしました。
CString m_InputData;
char moji[100];
int n;

strcpy(moji,m_InputData);
n=strlen(moji);
moji[n-2]='\0' //■n-2です
m_InputData=moji;

>サンプルプログラムのままがよければそれでいいはずです。
もう少しスマートな書き方があるんじゃないかと思いお聞きしました。

これでお分かりでしょうか?
よろしくお願い致します。

お礼日時:2003/09/13 22:33

結局何をしようとしているのかわかりませんが、


こちらを参考にしてみてはいかがでしょうか。
http://www.microsoft.com/japan/developer/library …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>結局何をしようとしているのかわかりませんが、
質問が仕方がまずいようですが、勘弁ください。

サンプルプログラムと同じことが出来れば良いです。

よろしくいお願い致します。

お礼日時:2003/09/13 21:07

'\0'は文字列の終わりを意味するコードなので、「文字」ではありませんし、文字列の一部として扱うことはできません。


CString型では内部で自動的に文字列の最後に'\0'が付加されています。

ご質問のサンプルプログラムでは、文字列が1文字少なくなるだけです。

この回答への補足

回答ありがとうございます。

サンプルプログラムと同じ処理が出来れば良いのですが、CString特有のもっと簡単な書き方ができるのでしょうか?

よろしくお願い致します。

補足日時:2003/09/13 21:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字+改行コードの置換について

文字+改行コードの置換についてご教授ください。
テキスト内の数字「9」とそれに続く改行コードのみ置換(削除)対象にしています。
全ての改行コードが対象ではないため、下記のようにエディタ(sakuraエディタ)で指定しました。

置換前: 9\r\n
※削除したいため、置換後の欄は空欄にしています。

しかし、この設定だと置換前の文字列を置換対象として認識しません。(検索対象としても)
\r\n だけだと改行コードを認識するので、文字と改行コードのセットを認識していないようです。

指定に誤りがあるのでしょうか。詳しい方ご教授お願いします。

Aベストアンサー

>「9」とそれに続く改行コードのみ置換(削除)
最後に「9」がある文字列の「9」を削除したいことでしょうか?

1あいうえお9 → 1あいうえお
9かきくけこ7 → 9かきくけこ7
さしすせそ999 → さしすせそ99

置換ダイアログの正規表現にチェックを入れます。

最後に「9」+改行コードのみ置換なら
置換前「9\r\n」
置換後「\r\n」

最後に「9」+改行コードがある行を削除するなら
置換前「^.*9\r\n」
置換後「」(空欄)

Q&str[n]とpstr + nと&pstr[n]

あるプログラミングの本で

&str[n]
pstr + n
&pstr[n]

は同じだと書いてあり、考えたのですが、
上の二つはstr[n]のアドレスを表しているとしても、
三つ目はstr[n]のポインタのアドレスを表していると思うのですが
どこが間違っているのでしょうか?教えてください。

Aベストアンサー

>本にも突然でてきているのでよくわからないのですが・・・。

よくわからないもの同士が同じかと聞かれても、よくわからないというのが答えです。
本当に、突然出てきているのなら、そんな本は捨てましょう。

Qword置換で改行は置換できますか?

word置換で改行は置換できますか?

 一斉にEnterでの改行されている部分を置換する方法はないでしょうか?
 あればよろしくおねがいします。

Aベストアンサー

検索と置換画面の「置換」タブ画面で [オプション] を選択し、右下にある「あいまい検索」のチェックを外します。
検索する文字列にカーソルを置いて、[特殊文字] ボタン → 段落記号(P) を選択すると、検索する文字列に 「^p」が入力されます。(直接キー入力してもOKです)

置換後の文字列に置換する文字列、特殊文字を入力して置換をしますが、何も指定しないで、「置換」または「すべて置換」を行うと、改行が削除されます。

特殊文字の一覧項目の「段落記号」は[Enter]による改行で、[Shift]+[Enter]による改行は、「任意指定の行区切り(L)」です。
 

Qstruct tanka_kosuu kosuu[10];の[10]て何

#include <stdio.h>
struct tanka_kosuu {
int tanka;
int kosuu;
int kingaku;
};
int main()
{
         struct tanka_kosuu kosuu[10];
       構造体宣言 構造体名  変数名
struct tanka_kosuu kari_nyuuryoku = {-1, 0, 0};
int nyuuryoku_kosuu = 0;
while(kari_nyuuryoku.tanka != 0){
scanf("%d %d", &kari_nyuuryoku.tanka,
&kari_nyuuryoku.kosuu);
kosuu[nyuuryoku_kosuu] = kari_nyuuryoku;
nyuuryoku_kosuu++;
}
return 0;
}
以上ですが、
 struct tanka_kosuu {
int tanka;
int kosuu;
int kingaku;
以上と
struct tanka_kosuu kosuu[10];は
 以下
int tanka;
int kosuu[10];
int kingaku;
 と同じ意味ですか?
 それとも
  int tanka[10];
int kosuu[10];
int kingaku[10]; 
 と同じ意味ですか?
int tanka[10];と
 int kingaku[10];の
 合計に[10]は必要ないですよね
以上すべて私の考え方が間違っていたならごめんなさい。
 以上よろしくお願いいたします。

#include <stdio.h>
struct tanka_kosuu {
int tanka;
int kosuu;
int kingaku;
};
int main()
{
         struct tanka_kosuu kosuu[10];
       構造体宣言 構造体名  変数名
struct tanka_kosuu kari_nyuuryoku = {-1, 0, 0};
int nyuuryoku_kosuu = 0;
while(kari_nyuuryoku.tanka != 0){
scanf("%d %d", &kari_nyuuryoku.tanka,
&kari_nyuuryoku.kosuu);
kosuu[nyuuryoku_kosuu] = kari_nyuuryoku;
nyuuryoku_kosuu++;
}
return 0;
}
以上です...続きを読む

Aベストアンサー

#1です。

>struct tanka_ data { ・・・・(1)
>  int tanka;
>  int kosuu;
>  int kingaku;
>};
・・・途中省略
>} これでいいでしょうか

(1)のところは、変えてはいけません。
struct tanka_kosuu { 
のままにして下さい。
他は、問題ありません。

QWordVBA 置換処理での改行文字の可否

(実際にはExcelのVBAからWordファイルを開いての処理になるのでExcelのVBAで組んでいますが、)
WordのVBAで、置換処理を作成しています。
keyword1 = "検索文字"
keyword2 = "置換文字"
With objSelection.Find
.Text = keyword1
.Forward = True
.MatchWholeWord = True
.Replacement.Text = keyword2
.Execute Replace:=wdReplaceAll
End With
置換処理自体は出来ています。上記処理は置換部分の抜粋です。
しかし行いたいことはタイトルにもあります通り、置換文字中に改行を含めた状態での置換処理です。
長い文字列を置換するだけなら問題ないのですが、改行を含めてしまうと改行文字が別の文字に置き換えられてしまうようです。
置換先でも改行された状態にしたいのですが、これは書き方に問題があるのでしょうか?
もしくは置換処理ではなく、他の方法を取る必要があるのでしょうか?
教えてください。よろしくお願いいたします。

(実際にはExcelのVBAからWordファイルを開いての処理になるのでExcelのVBAで組んでいますが、)
WordのVBAで、置換処理を作成しています。
keyword1 = "検索文字"
keyword2 = "置換文字"
With objSelection.Find
.Text = keyword1
.Forward = True
.MatchWholeWord = True
.Replacement.Text = keyword2
.Execute Replace:=wdReplaceAll
End With
置換処理自体は出来ています。上記処理は置換部分の抜粋です。
しかし行いたいことはタイトルにもあります通り、置換文字中に改行を含めた状態での置換...続きを読む

Aベストアンサー

こんにちは。

>長い文字列を置換するだけなら問題ないのですが、改行を含めてしまうと改行文字が別の文字に置き換えられてしまうようです。

質問の「WordVBA 行の削除」で、偶然に書いたのですが、改行コードの問題で、Excel側は、セルにvbLF が入っているはずですから、

一旦取得した、置換文字を、以下のようにして
keyword2 = Replace(keyword2, vbLf, Chr(11), , , vbBinaryCompare)

置換すればよいのではありませんか?

ちなみに、これが入っているWordテーブルのセルの中で、改行コードの種類が確認できれば、「WordVBA 行の削除」のVBAのほうも可能です。Paragraph 自体の変更はありません。

Qfp = fopen(argy[1], "r");の[1]の意味は

https://oshiete.goo.ne.jp/qa/8940272.html
 の11行目に
fp = fopen(argv[1], "r");の[1]の意味が分かりません。
試したいのですが、ソフトがうまく動きません
 よろしくお願いいたします。

Aベストアンサー

前の例題も読みました。

大分苦戦しているようですが、配列については理解が進みましたでしょうか?
お答えしますと、最初のパラメータ文字列が代入されています。

古いC言語の約束でして大変有名なものです。

コマンドラインコンソールから実行ファイル名を書いて、
パラメータをスペースで区切って指定したとします。

このパラメータ文字列が[1]以降に入ります。
例として、"test"と言う名前の実行ファイルがあったとします。

例)> test test1 test2 3 4

このようにコマンドラインから入力し実行すると、

argc = 5
argv[0] = "test"
argv[1] = "test1"
argv[2] = "test2"
argv[3] = "3"
argv[4] = "4"

と文字列が入ってきます。

以下はサンプル。

void main( int argc , char *argv[])
{
if( argc < 2 )
{
// パラメータ指定がなかった場合の表示
printf( "test に続けて4つまでパラメータを入力できます\n");
exit(0);
}
if( argc > 5 )
{
 // パラメータが5つ以上あった場合の表示
printf( "5つ以上のパラメータは受け付けません\n");
exit(-1);
}

// 正常ルート
printf( "パラメータの数は%d個ですね?ニヤッ\n", argc-1);
printf( "最初のパラメータは%sでしょ?\n", argv[1]);
printf( "残りはargv[2]以降ですが、面倒なので表示しません\n");
}

と言う具合に、引数を活用できます。argv[0]には、実行ファイル名が入ります。
argc は実行ファイルの名前も含めてカウントされます。

プログラムによっては必要な引数の数が変わりますし、
ユーザーのコマンドラインからの入力ミスなどでパラメータがなかったり、
必要なパラメータが不足していたりしますので、
argcとargvを使って最初にシンタックスエラーチェックをするのが常道です。

実行ファイル名の指定がなく、プログラムが実行されることはないと思われます
から、argcは1以上の値になります。

argc, argvの活用は、
実行コマンドを手打ちで打ち込むコンソール形式でよく用いられる基本的な
アプリケーションの開発手法です。

ご質問の箇所は、
第一パラメータにプログラム内で読み込むファイルのファイル名を指定してるの
でしょう。(よくあります)

しかし、Windowsなどのウィンドウを使用するアプリケーションは、
これとは違っておりますので注意が必要です。
(C言語とは別に、Windowsに特化した開発ノウハウの勉強が必要です)

Windows系で上記の様な基本的なプログラムを作成する場合は、
プロジェクトの作成時に(VisualStudioなどで)コンソールアプリケーション
を選んで作成します。実行時にコンソールが開きます。

Linuxの場合は、コンソールがデフォルトになっているでしょうから、
(特殊な設定がなければ)そのまま作成できます。

テキストエディタでソースを記述し、gcc などでコンパイルします。
実行形式ファイルが出来ていれば、想定どおりの動作をするでしょう。

ファイルの読み込みが出来るようになったら、
ファイルの内容を書き換えて保存したり、
ファイル名を変えたり、
ディレクトリ内のファイルを全て表示したり、
ファイル内に含まれる文字列を検索し、該当するファイルをリストしたりなど、

有用なサンプルプログラムを沢山作って練習します。

ファイルを読み込む先は、char型の配列でバイトサイズのメモリーとして確保
します。メモリーと変数の関係を充分に理解することをお勧めします。
殆どのプログラムは、このメモリーの確保やメモリーサイズの計算と格闘する
場合が多くなるからです。

バイナリー形式のファイル(すべてはバイナリー形式として良いのですが)に
ついて理解が深まった後は、
bmpの画像ファイル、wavなどの音声ファイルをあけて、
これの中身を書き換えて遊びます。

特にwavファイルは、音量の変更や周波数フィルタなども掛けれますので、
メモリ、配列、ファイルの関係を(焦らずに)ゆっくり理解するだけで、
今の知識レベルでも面白いことが沢山出来ます。

以上、ご参考に成れば。

前の例題も読みました。

大分苦戦しているようですが、配列については理解が進みましたでしょうか?
お答えしますと、最初のパラメータ文字列が代入されています。

古いC言語の約束でして大変有名なものです。

コマンドラインコンソールから実行ファイル名を書いて、
パラメータをスペースで区切って指定したとします。

このパラメータ文字列が[1]以降に入ります。
例として、"test"と言う名前の実行ファイルがあったとします。

例)> test test1 test2 3 4

このようにコマンドラインから...続きを読む

QフリーソフトYokkaGrepでの置換時の改行作業

フリーソフトYokkaGrepでの置換時の改行作業

「改行 置換」でググると、改行を置換でなくす…という方法はでてくるのですが、
置換する時に改行をつける方法がよくわかりませんでした

やりたいことは

aaaa
bbbb
</body>

という文に

検索文字列  </body>
置換後文字列 [改行]ccc[改行]</body>

最終的に

aaaa
bbbb
ccc
</body>

という文章にしたいです。

YokkaGrepというフリーソフトを使っているのですが
改行の指定方法がわかりません。。。

よろしくお願いいたします

Aベストアンサー

ううーんゴメンナサイ。
いまそのソフトをインストールして試す時間がありません。
YokkaSoftのサイトには掲示板があって活発に書き込みがあるようなので、そこで質問してはどうでしょうか。
下のページからsupportで行けるみたいです。
http://www.yokkasoft.net/

Qname[3] = seq + '0';の意味

オライリーC実践プログラミングのP203、例13-11の例で質問です。
このプログラムでは一時的なファイル名を返す関数、tmp_nameがあるのですが
このプログラム中の以下の行がよく分かりません。
name[3] = sequence + '0';

直感的にsequenceだけでよさそうな気がするのですが以下のように書き直すと
出力結果にsequenceの数字がでずただ"tmp"と出力されるだけでした。
name[3] = sequence;


char型にint型を使うための手段なのでしょうか?
下記にプログラム全体を載せておきます。よろしくお願いします。

#include <stdio.h>
#include <string.h>

char *tmp_name(void)
{
static char name[30];
static int sequence = 0;

++sequence;

strcpy(name, "tmp");

name[3] = sequence + '0';
name[4] = '\0';

return (name);

}

int main()
{
char *tmp_name(void);

printf("%s\n", tmp_name());

return (0);
}

オライリーC実践プログラミングのP203、例13-11の例で質問です。
このプログラムでは一時的なファイル名を返す関数、tmp_nameがあるのですが
このプログラム中の以下の行がよく分かりません。
name[3] = sequence + '0';

直感的にsequenceだけでよさそうな気がするのですが以下のように書き直すと
出力結果にsequenceの数字がでずただ"tmp"と出力されるだけでした。
name[3] = sequence;


char型にint型を使うための手段なのでしょうか?
下記にプログラム全体を載せておきます。よろしくお願いします。

#incl...続きを読む

Aベストアンサー

これは、0から9までの数値をそれに対応する文字に変換するお手軽かつ問題のある手法です。

ご存知かもしれませんが、コンピューターでは文字は内部的には対応する数値で表されています。
ですから、C/C++ではchar形の中にあるのは文字ではなくその文字に対応する数値です。
したがって、
sequence + '0'
は0という文字を表す数値にsequenceを足した値になります。文字と数値の対応はたいてい0という文字の次に1, 2, ..., 9と続くようになっていますので、結果、sequenceが0なら0という文字を表す数値、sequenceが1なら1という文字を表す数値、…という値になります。
参考キーワードとして「ASCIIコード」を調べるといいでしょう。

数値から文字への変換がたった1回の足し算で出来る、とってもお手軽な方法ですよね?

でも、以下のように問題があるのであまり使わないほうがいい方法です。

・0から9までしか使えない
上で書いたとおり、この方法でsequenceが0なら0という文字に、1なら1という文字に変換できます。……では、sequenceが-1だったら?10だったら?

・そもそも前提に疑問が残る
文字と数値の対応はたいてい0という文字の次に1, 2, ..., 9と続くようになっています。……でもあなたの処理系で本当に連続して並んでいますか?将来そのように並んでない処理系への移植がないと100%言い切れますか?

これは、0から9までの数値をそれに対応する文字に変換するお手軽かつ問題のある手法です。

ご存知かもしれませんが、コンピューターでは文字は内部的には対応する数値で表されています。
ですから、C/C++ではchar形の中にあるのは文字ではなくその文字に対応する数値です。
したがって、
sequence + '0'
は0という文字を表す数値にsequenceを足した値になります。文字と数値の対応はたいてい0という文字の次に1, 2, ..., 9と続くようになっていますので、結果、sequenceが0なら0という文字を表す数値、sequenceが...続きを読む

QMacOS10.6 エクセル2008 改行コード 置換方法

MacOS10.6 にてExcel2008を使用しています。
いま処理しようとしているデータのセル中に改行が含まれており、これらを置換にて一括消去をしたいのですが改行コードの入力方法がわかりません。
Windowsでしたら「Ctrl+J」で検索文字列の欄に入力できるようなのですがMacで行うと変な文字がでて当然ながら置換はできません。

セル中で「Control+Option+Return」にて改行を入力する事はできますが、これを上記の置換の検索文字列欄で行うと最終セルまで移動してしまうだけで置換はされません。

大量のデータで、しかも今後定期的な作業が必要となる為に途方にくれてます。
どなたか検索置換にて「検索文字列欄」に改行コードを入力する方法ご存じでしたら教えてください。
お願いいたします。

Aベストアンサー

残念ながらExcel2008はVBAが搭載されていないようです。

えっ!VBAがない?
http://officetanaka.net/excel/mac/tips02.htm

Qfor(int i = 100, long n = 1; i > n/3i; i++)

for(int i = 100, long n = 1; i > n/3i; i++)
のように、初期設定で型の違う変数を宣言したいんだけど
C++ではこんなふうに2つ以上の型を宣言してはいけないんですか?

Aベストアンサー

,

コンマ演算子の原理です。
forの初期化文で "," で区切れるのは値を返す文だけです。
よってintステートメントもlongステートメントも値を返さないので、この文では使用できません。

というか、むしろ、intステートメントの第2引数としてlongが認識されてしまいます。
外で

int i; long n;

とし

for(i = 0, n = 0; hoge; hoge)

なら可能です。


人気Q&Aランキング

おすすめ情報