我正在尝试操作文本,文本存储在一个变量中,我想将文本保存到字符“:”,但这对我不起作用
这就是我所做的:
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 字符串”的谷歌搜索(虽然你确实得到了一些 NSFW 命中;-))。
作为一种替代方法,您可以编写一个函数来删除第一次出现的:
并返回结果。
此函数将字符串返回到:
符号:
char * StripColon(char *str)
{
if(str) return strtok(str, ":");
return "";
}
这是如何使用此函数的示例:(以及其他返回原型的函数char *
)
#include <ansi_c.h>
char * StripColon(char *str);
int main()
{
char line[]="this is a new: string"
char newString[80];
newString[0]=0;
strcpy(newString, StripColon(line));
printf("String without \":\" %s\n", newString);
getchar();
return 0;
}