【问题标题】:Convert char array to string use C将char数组转换为字符串使用C
【发布时间】:2013-01-15 18:13:17
【问题描述】:

我需要将 char 数组转换为字符串。 像这样的:

char array[20];
char string[100];

array[0]='1';
array[1]='7';
array[2]='8';
array[3]='.';
array[4]='9';
...

我想得到类似的东西:

char string[0]= array // where it was stored 178.9 ....in position [0]

【问题讨论】:

  • 阅读 man atof, man strtod
  • 你是什么意思“一个char数组到一个字符串”,一个char数组就是一个字符串。
  • @Mike 当且仅当对象中出现“\0”时。
  • char string[100] 应该是 char string[100][N]
  • 我知道'\0'是终止符,但是我需要将整个char数组的10个元素保存到字符串中。

标签: c arrays


【解决方案1】:

你是说你有这个:

char array[20]; char string[100];
array[0]='1'; 
array[1]='7'; 
array[2]='8'; 
array[3]='.'; 
array[4]='9';

你想要这个:

string[0]= "178.9"; // where it was stored 178.9 ....in position [0]

你不能这样。一个 char 包含 1 个字符。就是这样。 C 中的“字符串”是一个字符数组,后跟一个标记字符(NULL 终止符)。

现在,如果您想将 array 中的前 x 个字符复制到 string,您可以使用 memcpy():

memcpy(string, array, x);
string[x] = '\0'; 

【讨论】:

  • 不幸的是我没有 15 名声望这样做我可以数据拇指:)
【解决方案2】:

假设array 是一个不以\0 结尾的字符数组,您将需要使用strncpy:

char * strncpy(char * destination, const char * source, size_t num);

像这样:

strncpy(string, array, 20);
string[20] = '\0'

然后string 将是一个空终止的 C 字符串,根据需要。

【讨论】:

    【解决方案3】:

    您可以使用strcpy,但请记住以'\0' 结束数组

    char array[20]; char string[100];
    
    array[0]='1'; array[1]='7'; array[2]='8'; array[3]='.'; array[4]='9'; array[5]='\0';
    strcpy(string, array);
    printf("%s\n", string);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多