getenv + c中的字符串和转换类型

时间:2019-01-17 12:22:46

标签: c

我要添加/ home / username +“ /path.png?5667!http-get:*:image / png:!!!!!”就像在Java中一样。但在C

name = malloc(strlen(hm)+strlen("/path.png?5667!http-get:*:image/png:!!!!!") + 2);

#include <stdlib.h>
#include<stdlib.h>
#include<string.h>
char *hm;
char *full;
hm = getenv("HOME");
full = malloc(strlen(hm)+strlen("/path.png?5667!http-get:*:image/png:!!!!!") + 2);
printf("name = %s\n",name);

我希望:/home/username/path.png?5667!http-get:*:image/png:!!!!!"

1 个答案:

答案 0 :(得分:1)

不要害怕使用str实用程序。 man strcpyman strcat。 这是我想您想要的(帖子尚不清楚):

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int     main()
{
  char* home = getenv("HOME");
  char* add = "/path.png?5667!http-get:*:image/png:!!!!!";
  char* full = malloc(strlen(home) + strlen(add) + 1);
  strcpy(full, home);
  strcat(full, add);
  printf("Full = %s", full);
  return 0;
}