0

テキストを操作しようとしています。テキストは変数に格納されており、文字 ':' までテキストを保存したいのですが、うまくいきません。

これは私がしたことです:

void proccessLine(char *line)
int i=0;
char name=' ';
while(line[i+1]!=':')
{
    name=name+line[i];
    i++;
}
printf("%s\n", &name);
4

2 に答える 2

2

人々がコメントで述べたように:

int i=0;
char name[256];
while(line[i+1]!=':' && i < 255)
{
   name[i] = line[i];
   i++;
}
name[i] = '\0';
printf("%s\n", name);

C では、「文字列」は存在せず、chars の配列のみが存在します。には、文字列を処理する関数がいくつかあります (実際にcharは、ポインタに対して機能します。これは基本的に配列と同じです) string.h。そのため、この+演算子は C では文字列連結として機能しませんstrncat。そのために使用する必要があります。

詳細はこちら: http://www.cprogramming.com/tutorial/c/lesson9.htmlまたは「C 文字列」に関する Google 検索 (ただし、NSFW のヒットもいくつかあります ;-))。

于 2013-11-06T16:18:29.467 に答える