【发布时间】:2016-04-17 10:42:14
【问题描述】:
所以基本上我不知道如何很好地使用这个命令,我在论坛中搜索并且可以理解如何打印字符串和使用指针,但我想分割字符串并将所有标记保存在不同的变量中.
我正在尝试做这样的事情
char s[20],*pt,name[10];
pt=strtok(s," ");
现在我想保存名称字符串上的第一个标记,但我在终端上收到错误,唯一有效的方法(仅传递指针)只给我 1 个字母。
-
name=pt;不起作用。 -
*(name)=*pt有效,但只收到一封信。
完整代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
FILE *f=fopen("tarefas.txt","r");
char s[50];
typedef struct{
char nome[20];
int trab;
int acab;
} tarefa;
int i=0,*dias;
tarefa *v;
char *pt;
v=(tarefa *) malloc(sizeof(tarefa));
dias=(int *) malloc(sizeof(int));
while(fgets(s,50,f)){
pt= strtok(s," ");
v[i].nome=s; //doesnt work
int t=strlen(v[i].nome);
v[i].nome[t]='\0';
printf("%s\n",s);
}
【问题讨论】:
-
我添加了我拥有的代码
-
您需要使用
strcpy复制字符串的内容,或者更安全的是使用strncpy。