C语言中如何将两个字符串加在一起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中如何将两个字符串加在一起相关的知识,希望对你有一定的参考价值。

可以使用string.h头文件中的strcat函数 char *a="123"; char *b = "abc"; strcat(a,b)即可,更多的字符串操作可以看一下string.h头文件中 有好多封好的, 如果不想用的话就可以自己写一个函数
函数内容:1.获取两个字符串的总长度,如total_len=len1+len2然后申请一个动态的数组大小为total_len 然后把字符串中的内容依次放进去就可以了。
参考技术A 可以用string.h里的strcat(char *str1,char * str2)方法;
如果要自己实现需要指针或者数组的知识(数组本质上也是在操作指针)
大致代码可以这么些:
#include<stdio.h>
#include<stdlib.h>

char * join(char *pre, char *suff); //拼接
int strlength(char * str); //计算长度

int main(int argc, char const *argv[])

char *str1="hello ";
char *str2="world!";
//char *str=join("我喜欢","C"); // 我喜欢C
char *join_str=join(str1,str2);
printf("%s\n",join_str);// hello world!
return 0;


char * join(char * pre,char * suff)
int pl=strlength(pre);
int sl=strlength(suff);
char * end=(char *)malloc(pl+sl);
int index=0;
while(pl-->0)
*(end+index)=*pre++;
++index;

while(sl-->0)
*(end+index)=*suff++;
index++;

return end;


int strlength(char *str)
int len=0;
while(*(str+len)!='\0') ++len;

return len;
参考技术B 档位怎么用?

如何将每一行数据组合在一起?

在PHP中,我想将每一行加在一起。这是我自己的数据库的摘要示例:

c(CorporateID,CompanyName)
o(CorporateID,OutletID)
os(OutletID,StaffName)

数据:

c表:

CorporateID   CompanyName
-----------   -----------
1             A&B Company

o TABLE:

CorporateID   OutletID
-----------   --------
1             1
1             2
1             3

os TABLE:

OutletID   StaffName
--------   ---------
1          Jeannie
1          Zoey
1          Jasmine
2          James
2          Catherine
3          Ada

PHP的一部分

$conn = new mysqli(server, dbuser, dbpw, db);
$query = "
    SELECT o.*, c.*, os.* 
    FROM Outlet o, Company c, OutletStaff os
    WHERE c.CorporateID = o.CorporateID
    AND o.OutletID = os.Outlet_ID";
$result = $conn->query($query);

$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"CompanyName":"'. $rs["CompanyName"].' - Outlet'. $rs["OutletID"].'",';
    $outp .= '"Worker":"'.$rs["StaffName"].'"}';
}
$outp .="]";

$conn->close();

echo($outp);

输出

[{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jeannie”},{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Zoey”},{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jasmine”},{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ James”},{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ Catherine”},{“ CompanyName”:“ A&B-Outlet3”,“ Worker”:“ Ada”}]

如您所见,由于该插座中的工人不同,所以存在重复的companyname

这是我期望的:

[{“ CompanyName”:“ A&B-Outlet1”,“ Worker”:“ Jeannie,Zoey,Jasmine”},{“ CompanyName”:“ A&B-Outlet2”,“ Worker”:“ James,Catherine”},{“ CompanyName”:“ A&B-Outlet3”,“ Worker”:“ Ada”}]

能够做到吗?我个人认为与PHP的第13行有关:

$outp .= '"Worker":"'.$rs["StaffName"].'"}';

也许我需要循环然后放入变量中,然后放入此输出中?如何实现?

答案

假设您的MySQL响应看起来像这样;

$result = [
    [
        "company_name" => "ABC",
        "worker" => "Dipesh"
    ],
    [
        "company_name" => "CDE",
        "worker" => "Ramesh"
    ],
    [
        "company_name" => "CDE",
        "worker" => "Mukhesh"
    ]
];

您可以使用唯一键简单地创建一个关联数组,如下面的代码片段所示。

$res = [];
foreach($result as $value){
 $company_name = $value['company_name'];
 if( isset($res[$company_name]) ){
    $res[$company_name] = array_merge($res[$company_name], [$value['worker']]);
 }else{
     $res[$company_name] = [$value['worker']]; 
 }
}

然后组合键和值以使用php implode函数轻松获得所需的响应。

$result = [];
foreach($res as $key => $val){
   $result[] = [
     'company_name' => $key,
     'worker' => implode($val,",")
   ];   
}

对于JSON响应,您可以简单地调用json_encode($result)以获取所需的输出。

[
  {
    "company_name": "ABC",
    "worker": "Dipesh"
  },
  {
    "company_name": "CDE",
    "worker": "Ramesh,Mukhesh"
  }
]

以上是关于C语言中如何将两个字符串加在一起的主要内容,如果未能解决你的问题,请参考以下文章

oc语言:已知有两个字符串,将两个字符串拼接在一起,并且用空号隔开.

c ++:如何将整数添加到字符串

Python,MYSQL 如何将两个单独列表中的两列加在一起(数字总和)到一个新列表中? [关闭]

C语言:将两个字符串连接起来。

基础问题,C语言怎样拼接两个宏定义的字符串

在c语言或者php 怎么将两个或多个常量连接起来,比如一个常量为1 另一个常量为2 连接成12