Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中将字符转换为字符串的API_C_String_Casting_Character_Atoi - Fatal编程技术网

在C中将字符转换为字符串的API

在C中将字符转换为字符串的API,c,string,casting,character,atoi,C,String,Casting,Character,Atoi,在C语言中是否有将字符转换为字符串的API 我基本上有一个字符串,想在它的末尾插入一个字符。 说 我希望它看起来像“你好” 我正在寻找一个方便的API,而不是像这样复杂的东西 #include <stdio.h> #include <string.h> int main(void) { char str[] = "hello"; int len = strlen(str); /*assume this is the character I want to add

在C语言中是否有将字符转换为字符串的API

我基本上有一个字符串,想在它的末尾插入一个字符。 说

我希望它看起来像“你好”

我正在寻找一个方便的API,而不是像这样复杂的东西

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

int main(void)
{
 char str[] = "hello";
 int len = strlen(str);

 /*assume this is the character I want to add at the end */
 str[len] = '1';
 str[len+1] =  NULL;


 printf("%s",str);

 return 0;
}
#包括
#包括
内部主(空)
{
char str[]=“你好”;
int len=strlen(str);
/*假设这是我想在结尾添加的角色*/
str[len]=“1”;
str[len+1]=NULL;
printf(“%s”,str);
返回0;
}
str
是一个由六个字符组成的数组:
'h'
'e'
'l'
'l'
'o'
'\0'
。如果执行
str[strlen(str)]=“1”
,则覆盖终止的
num
字符(与
NULL
指针不同)。当您执行
str[strlen(str)+1]='\0'
时,您将写入数组的末尾

 str[len+1] =  NULL;
即使使用可变长度阵列,也无法在分配存储后调整阵列的大小

您可以为字符串分配额外的空间,如下所示:

char str[ 7 ] = "hello";
size_t len = strlen(str);
str[ len ] = '1';
str[ len + 1 ] = '\0';
在这行中,您的尺码是6号('h'、'e'、'l'、'l'、'o'、'\0')

所以,在这一行之后,它变成了

str[len] = '1';

下面的一行超出了数组的大小,因此这是不允许的,并且不能调整数组的大小

 str[len+1] =  NULL;
您可以首先分配一个较大的数组

char str[7] = "hello";

若你们想在C中找到一种简单的方法,你们可以使用函数

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

int main()
{
    char str1[8] = "hello";
    char str2[2] = "1";

    strcat(str1, str2);
    printf("%s",str1);

    return 0;
}
#包括
#包括
int main()
{
char str1[8]=“你好”;
字符str2[2]=“1”;
strcat(str1、str2);
printf(“%s”,str1);
返回0;
}

char str[]=“你好”-->
char str[8]=“你好”
将允许1个额外字符您希望API调用将字符附加到以null结尾的字符数组中吗?没有人再写代码了:(这里是“1”是一个字符串。我希望1成为一个字符并且仍然能够追加。但我不知道要追加多少个字符。当然你不会。这就是为什么你不能使用固定大小的数组来扩展字符串。你需要理解
malloc
realloc
strcat
等(特别是strcat的问题)。一步一个脚印。我的回答回答了您的具体问题。
 str[len+1] =  NULL;
char str[7] = "hello";
#include <stdio.h>
#include <string.h>

int main()
{
    char str1[8] = "hello";
    char str2[2] = "1";

    strcat(str1, str2);
    printf("%s",str1);

    return 0;
}