| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1390 人关注过本帖
标题:使用 strcat 遇到一个匪夷所思的问题
只看楼主 加入收藏
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 9 楼 embed_xuel
tick = time(0);
    if (ctime_r(&tick, seq) == NULL)
        err_quit("ctime_r error");
    seq[strlen(seq)-1] = '\0';
2014-07-17 14:04
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
ctime_r函数的用法?
seq[strlen(seq)-1] = '\0';   这句是做什么?

总有那身价贱的人给作业贴回复完整的代码
2014-07-17 14:21
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 12 楼 embed_xuel
ctime_r函数是根据将tick值转换为可读的日期字符串并存到seq的缓冲区中,
seq[strlen(seq-1)] = '\0'是因为ctime_r返回的的字符串末尾自动加了'\n'符,这是为了让seq以'\0'结尾。。。。。

2014-07-17 14:31
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
以下是引用锋了在2014-7-17 14:31:45的发言:

ctime_r函数是根据将tick值转换为可读的日期字符串并存到seq的缓冲区中,
seq[strlen(seq-1)] = '\0'是因为ctime_r返回的的字符串末尾自动加了'\n'符,这是为了让seq以'\0'结尾。。。。。

也就是说ctime_r返回的的字符串末尾没有以'\0'结尾?那你知道strlen的原理吗?

总有那身价贱的人给作业贴回复完整的代码
2014-07-17 14:34
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 14 楼 embed_xuel
返回字符串的长度,好像是不包括结尾。
跟这个没有关系的,我原来是没加这行的,因为有问题所以加了这句。。。如果去掉也是没有用的
2014-07-17 14:39
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 15 楼 锋了
再多想想吧

总有那身价贱的人给作业贴回复完整的代码
2014-07-17 14:40
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 15 楼 锋了
你觉得字符串结束符对于字符串重要吗?
还是那个问题,strlen的原理是什么?strcat的原理是什么?

总有那身价贱的人给作业贴回复完整的代码
2014-07-17 14:43
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 16 楼 embed_xuel
如果你觉得是这个问题的话,我把所有有关seq的代码都注細掉。这是没有影响的
2014-07-17 14:45
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
我在引导你自己发现问题,不是告诉你最终原因。

总有那身价贱的人给作业贴回复完整的代码
2014-07-17 14:47
锋了
Rank: 7Rank: 7Rank: 7
来 自:向日葵幼儿园
等 级:黑侠
威 望:2
帖 子:306
专家分:586
注 册:2012-10-27
收藏
得分:0 
回复 17 楼 embed_xuel
NAME
       strcat, strncat - concatenate two strings
SYNOPSIS
       #include <string.h>
       char *strcat(char *dest, const char *src);
       char *strncat(char *dest, const char *src, size_t n);
DESCRIPTION
       The  strcat() function appends the src string to the dest string, over-
       writing the null byte ('\0') at the end of dest, and then adds a termi-
       nating  null  byte.   The  strings may not overlap, and the dest string
       must have enough space for the result.

NAME
       strlen - calculate the length of a string
SYNOPSIS
       #include <string.h>
       size_t strlen(const char *s);
DESCRIPTION
       The strlen() function calculates the length of the string s, not including the terminating '\0' character.
2014-07-17 14:47
快速回复:使用 strcat 遇到一个匪夷所思的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038899 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved