【问题标题】:single char strcat -C单字符 strcat -C
【发布时间】:2020-01-20 08:28:02
【问题描述】:

我想把两个单一的char 放在一起。 我应该使用函数 strcat 吗?

以下是我的代码

int main(){
    char *a[4]={"1","2","3","4"};
    char *new_a[2];    
   for (i=0;i<2;i++){
    new_a[i]=strcat(a[2*i],a[2*i+1]);
    printf("%c",*new_a[i]);
   }
    return 0;
}

我想将 new_a[0] 打印为 12,将 new_a[1] 打印为 34

【问题讨论】:

  • 如何你使用strcat? 什么应该是“{12,34}”?请花一些时间阅读有关how to ask good questions 和this question checklist 的信息,并了解如何创建minimal reproducible example 以向我们展示问题本身。
  • 你想要什么不清楚。你有 4 个字符指针(不是 4 个字符),你想要......两个字符串?
  • 你的意思是像char a[4][3]={"1","2","3","4"}; strcat (a[0], a[1]); strcat (a[2], a[3]); printf ("{%s,%s}\n", a[0], a[2]); ??
  • 对不起,我是第一次在这里提问。我只想让字符上的 4 个指针成为字符上的两个 2 指针,例如转换 char *a[4]={"1","2","3","4"};为 char *b[2]={"12","34"};
  • 欢迎来到 Stack Overflow!如果没有看到您的原始代码,我们将不知道如何对您现有的代码库进行更改。请发minimal reproducible example,并详细说明需要修改的地方。

标签: c char strcat


【解决方案1】:

在没有 100% 确定您需要什么的情况下,这里有一些代码通过将字符数组的第一个和最后两个字符连接在一起来提供您建议的输出。

另请注意,您所拥有的是 不是一个字符数组,由一个指针数组组成,因此您可能也想看看它。

代码如下:

#include "stdio.h"

int main(void){
    char a[4]={'1','2','3','4'};
    char str[8] = {'{', a[0], a[1], ',', a[2], a[3], '}', '\0'};
    printf("string: %s\n",str);
    return 0;
}

输出:

string: {12,34}

【讨论】:

  • 我不认为 OP 的字面意思是在输出中包含 {} 和 ,s。
猜你喜欢
  • 2017-01-24
  • 2014-08-06
  • 1970-01-01
  • 2016-03-03
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
  • 2022-11-12
相关资源
最近更新 更多