![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| 高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| 外部ファイルから変数を代入 | oneillc9 | シェルプログラミングとスクリプティング | 1 | 2008年7月31日 03:12午後 |
| 代替 | neyo | シェルプログラミングとスクリプティング | 1 | 2008年3月8日 10:08午前 |
| の変数の値を代入するsed | jyotipg | シェルプログラミングとスクリプティング | 1 | 2006年9月26日 09:54午前 |
| 現在の時刻を変数を代入 | jhansrod | シェルプログラミングとスクリプティング | 4 | 2005年11月20日 08:20午後 |
| シェル変数の代入 | suds19 | シェルプログラミングとスクリプティング | 1 | 2002年10月16日 08:55午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
別の1つの文字列置き換え
私はここで、大きな文字列内に、私は別の文字列を代用する必要があるために小さくしている1つのセクションは、 LinuxのCプログラムを書いているが、これらはおそらく同じ大きされません。
例えば、私は、文字列がある: " Nowisthetimeforallgoodmen " と私代替'へのすべての主要な文字列のほとんどの' 'のサイズが増加する場合: " Nowisthetimeformostgoodmen " または、主な文字列のサイズを大きくする置換: " Nowisthetimefornogoodmen " このように私は自分の最善のアプローチは、さらに面倒なことのいくつかの方法についての意見を加えてくるかもしれないと思った。私は、 Cの文字列関数がある場合には役立つかもしれないのを楽しみにしておりましたが、私は本当にすべてが表示されません。 任意の助けいただければ幸いです。 |
|
||||
|
そこでは、この操作を行うことができます実際には多くの方法があります。
その 最初の問題 あなたの文字列(文字配列)の大きさです。いずれかの固定長の配列を使用することができますが、たとえば( 512バイト)を突破されませんか、動的な長さのメモリ( mallocに仕事ができる期待バウンド( ) / calloc ( ) ) 。私は、低速の場合は最後の手段malloc ( )としてのみ使用するようにアドバイスすること/困難を維持するために/ヒューマンエラーを起こしやすい。 その 2つ目の問題 の置換を行うのは、適切な方法を選択されています。のような場合は直接には無理だと同じ大きさの文字を置換している コード:
char * p;
if ((p = strstr (array, "isthetime")) != NULL)
strncpy (p, "new chars", strlen ("new chars"));
あなたがしている 3番目 問題は、終端バイト'で多くの注意をしている\配列0 ' 。もしそれを上書きかもしれないとなり、予期しない状況につながる可能性があるそれに代わる十分な注意を忘れていない。 シモンズ: regcompも使用することができます( )と( )のパターンマッチングregexec /置き換える。 |