テキストを操作しようとしています。テキストは変数に格納されており、文字 ':' までテキストを保存したいのですが、うまくいきません。
これは私がしたことです:
void proccessLine(char *line)
int i=0;
char name=' ';
while(line[i+1]!=':')
{
name=name+line[i];
i++;
}
printf("%s\n", &name);
人々がコメントで述べたように:
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 では、「文字列」は存在せず、char
s の配列のみが存在します。には、文字列を処理する関数がいくつかあります (実際にchar
は、ポインタに対して機能します。これは基本的に配列と同じです) string.h
。そのため、この+
演算子は C では文字列連結として機能しませんstrncat
。そのために使用する必要があります。
詳細はこちら: http://www.cprogramming.com/tutorial/c/lesson9.htmlまたは「C 文字列」に関する Google 検索 (ただし、NSFW のヒットもいくつかあります ;-))。