首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何添加两个字符串?

如何添加两个字符串?
EN

Stack Overflow用户
提问于 2011-04-22 22:56:39
回答 4查看 298关注 0票数 2

根据我将施加的一些条件,我想添加5。这两个字符串的格式都是00:00。第一个字符串(s1)表示飞机起飞的特定时间,第二个字符串表示起飞将会有多长时间……这应该是24小时内完成的。

比方说,s1=10:45 s1=01:50

所以首先我必须将5和0相加,看看是否有进位输出,如果结果小于9,然后将4和5相加,看看结果是否小于6。如果不是,我将6减去加法,并将进位输出(1)添加到0和1,然后将1添加到0。

5+0=5

4+5=9 9-6=3进位:1

0+1+1=2

0+1=1

12:35

我想要获得的是s1=12:35

我真的不明白指针是怎么工作的。我试着去理解他们,但都是徒劳的。

你能帮帮我吗?

我有一些想法,我将在这里张贴:

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

char*add_hours(char s1[], char s2[])
   int i;
   for(i=4; i>3; i--){
    if(s1[i]+s2[i]>9){
      strcpy(s1[i], ((s1[i]+s2[i])-10); 
      strcpy(s1[i-1], (s1[i-1]+1));
    } 
...
}

代码会持续一小段时间,但它会重复几次。所以我觉得我不需要把所有的东西都复制到这里。问题是,他一直告诉我这个警告:

"warning: passing argument 1 of 'strcpy' makes pointer from integer without a cast /usr/include/string.h:128: note: expected 'const char * _restrict_' but argument if of type 'int'

对于第二个参数也是一样的,对于每个strcpy都有...我理解这个错误(我认为),但我不知道如何纠正它……

EN

回答 4

Stack Overflow用户

发布于 2011-04-22 23:03:32

我可能错了,但我认为你不会想要这样添加的。

如果你在00:30有一个降温,在04:00到达,但夏令时发生在两者之间,会发生什么?

填充time_t表结构。将其转换为time_t。添加延迟(以秒为单位)。将其转换回time_t,并使用strftme()将其打印出来。让C库中的时间代码来处理所有这些问题。

票数 4
EN

Stack Overflow用户

发布于 2011-04-22 23:16:16

首先,您应该删除for循环。它只进行了2次迭代,这是令人困惑的。

然后,函数的第一行应该是

代码语言:javascript
复制
 char * sum = new char[5];

因为您可能想要返回一个新字符串。这也会让事情变得更清晰。

试着分解一些东西来简化你的问题。开始写:

代码语言:javascript
复制
int minutes(char * s);
int hours(char * s);

分别返回以字符串表示的分钟数和小时数。

票数 1
EN

Stack Overflow用户

发布于 2011-04-22 23:07:17

strcpy要求字符串(字符/字符指针数组)作为其参数。您给它的是单个字符。如果您想以这种方式修改单个字符,则不需要使用strcpy

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>

char*add_hours(char s1[], char s2[])
   int i;
   for(i=4; i>3; i--){
    if(s1[i]+s2[i]>9){
      s1[i] = (s1[i]+s2[i])-10; 
      s1[i-1] = s1[i-1]+1;
    } 
...
}

代码中还存在其他逻辑问题,但这应该可以帮助您入门。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5756665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档