2011-12-28 13 views
0

本当に素早い質問ですが、おそらく私はそのような基本的なことを忘れてしまったでしょう!C - 配列に追加しますか?

私は配列内の最初の文字を大文字にしていますが、最後に1を追加したい - 私はネットワークセキュリティの研究の一環としてWPA/2ネットワーク用の単語リストを生成しています。

ので、単語の長さをうまく、そして、その単語の終わりに、アレイ内の位置に、番号1、または2、または3完全に忘れ

あなたがそれを行う方法を置きますしかし!

void capFirst(char *s, int i) { 
s[0] = (toupper(s[0])); 
} 


int main(int argc, char** argv) { 
int i; 
char fileSave[256]; 
char myString[50]; 
FILE *fpIn, *fpOut; 
for(i = 1; i < argc; i++) { 
    fpIn = fopen(argv[i], "rb"); 
    snprintf(fileSave, 256, "%s~[%d]", argv[i], i); 
    fpOut= fopen(fileSave, "wb"); 
    while((fgets(myString, 49, fpIn)) != NULL) { 
     if(isspace(myString[0])) 
      break; 
     i = strlen(myString); 
     if((i > 8) && (i < 64)) { 
      capFirst(myString, i); 
      fprintf(fpOut, "%s", myString); 
     } 
    } 

    } 
    return 0; 
    } 
+0

s [strlen(s)+1] = 'x'のようなものですか? – PnP

+3

あなたは何をしようとしているのか分かりません。 –

+0

編集をご覧ください。 – PnP

答えて

2

あなたは

i = strlen(string); 
string[i] = whatever you want there; 
string[i+1] = 0; 

が必要になります。しかし、あなたはstringが0ターミネーターのための十分なスペースを持っていることを確認する必要があります。

ところで、ループ内のforループカウンタとstrlenループカウンタにはiを使用します。これは一般的には悪い考えです。

+0

ええと、それは単語の先頭に追加します:S – PnP

+0

? 'strlen'が正しく動作するならば、その結果は0終止符の位置、文字列の終わりです。だから上の方が新しいキャラクターを最後に置きます。 –

関連する問題