⑴ c语言中,如何在一字符串中插入字符
c[5]只有5个空间无法完全容纳字符串"hello",因为这个字符串需要占用6个字符位置。
所谓自动加'\0'的问题是:你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号0,而不是运行时添加的。
如果你用debug方式运行程序,调试环境自动会把你开设的char
a[5];进行初始化0的工作,这时你再将第1位初始化时,后面的0仍存在就好象字符串结尾已经存在了。如果非debug运行则没有这个初始化工作。
如果你用字符方式初始化应当写:char
c[6]={
'h','e','l','l','o','\0'
};
希望对你能有所帮助。
⑵ c语言在指定字符后增加指定字符。
//示例代码如下
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineMAX_LAN1024
char*change(constchar*str,charch)
{
inti,j,k,len;
char*p=calloc(1,sizeof(MAX_LAN));//动态内存分配并初始化为0
strcpy(p,str);
len=strlen(p);
for(i=0;i<len;i++)
{
if(p[i]==ch)
{
k=i+1;//待插入的位置
for(j=len-1;j>i;j--)
p[j+1]=p[j];
p[k]=ch;
len++;
i++;
}
}
p[len]='