使用单引号
name[5]= ' ';
name[6]= ' ';
否则,你需要移动 “Blameson” 使用标准的C函数memmove
两个位置离开。
这里是一个示范项目
#include <stdio.h>
#include <string.h>
int main(void)
{
char name [20] = "Michael Blameson";
printf("My name is %s\n", name);
name[0] = 'P';
name[1] = 'e';
name[2] = 't';
name[3] = 'e';
name[4] = 'r';
memmove(name + 5, name + 7, strlen(name + 7) + 1);
printf("My name is %s\n", name);
return 0;
}
程序输出是
My name is Michael Blameson
My name is Peter Blameson
或者,如果你不想使用幻数,则程序可以看看下面的方式
#include <stdio.h>
#include <string.h>
int main(void)
{
char name [20] = "Michael Blameson";
printf("My name is %s\n", name);
size_t i = 0;
name[i++] = 'P';
name[i++] = 'e';
name[i++] = 't';
name[i++] = 'e';
name[i++] = 'r';
size_t j = strchr(name, ' ') - name;
memmove(name + i, name + j, strlen(name + j) + 1);
printf("My name is %s\n", name);
return 0;
}
其输出与上图所示相同。
My name is Michael Blameson
My name is Peter Blameson
至于语句
name[5]="";
name[6]= "";
在程序
然后""
是一个字符串(而不是字符文字),其具有阵列char [1]
该初始化像{ '\0' }
并且在分配的表达式的类型语句被转换为指向其第一个和单个元素的指针。程序应该为这些语句发出消息。
您正在尝试将字符串文字分配给类型为“char”的变量。 – ameyCU
编译器是否说出类似“警告:赋值使得指针中的整数不经过转换”? –
我甚至不明白这是什么意思。 –