【发布时间】:2013-07-09 15:03:56
【问题描述】:
我是 C 新手,我正在尝试将日期/时间字符串拆分为单独的变量。但是,当我逐行遍历 gdb 中的代码时,它可以工作,但是,当我让它正常运行而没有断点时,它会出现段错误,我不明白为什么。
下面是代码:
char * dateTimeString = "2011/04/16 00:00";
char dateVar[11];
char timeVar[6];
if (splitTimeAndDateString(dateVar, timeVar, dateTimeString))
{
exit(1);
}
printf("Date: %s\tTime: %s\n", dateVar, timeVar);
下面是函数
int splitTimeAndDateString(char date[11], char time[6], char * dateString)
{
char *token;
token = strtok(dateString, " ");
int i = 0;
while (token != NULL)
{
if (i == 0)
{
strcpy(date, token);
}
else if (i == 1)
{
strcpy(time, token);
}
else
{
printf("Overrun date time string\n");
return 1;
}
token = strtok(NULL, " ");
i++;
}
return 0;
}
感谢您提供的任何帮助。
【问题讨论】:
-
Strtok segfault的可能重复
-
我强烈建议学习者阅读 K&R。 强烈建议。字符串和指针是基本的 C 概念。非常基础。
-
@PP。请用粗体和斜体表示“非常基本”。