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 的数组。charstring.h. _ 因此,+运算符在 C 中不能用作字符串连接,您必须使用strncat它。

更多信息在这里:http ://www.cprogramming.com/tutorial/c/lesson9.html或任何关于“C 字符串”的谷歌搜索(虽然你确实得到了一些 NSFW 命中;-))。

于 2013-11-06T16:18:29.467 回答
0

作为一种替代方法,您可以编写一个函数来删除第一次出现的:并返回结果。

此函数将字符串返回到:符号:

 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;
 }
于 2013-11-06T16:39:00.507 回答