在C中,如果我有一个分配给变量的字符串,并且我想只更改该字符串中的最后4个字母,我应该怎么做? strcat()
?类似的东西:
int size;
char a[10] = "something";
size = strlen(a) - 4;
strcat(a + size, "1234");
那会有用吗?获得somet1234
?或者只是something1234
?
答案 0 :(得分:3)
使用strncpy
(以防止附加额外的终结符)从给定位置覆盖:
strncpy(a + size, "1234", 4);
如果你真的想要strcat
,请为strcat()
手动剪切字符串以找到连接的起始位置:
a[size] = '\0'; // Cut the string so strcat() know where to start
strcat(a, "1234");
答案 1 :(得分:0)
不,那不行。如果您使用的是strcpy()
而不是strcat()
,那就是。
答案 2 :(得分:0)
public string convertto(string abc,string replacewith,int len)
//something, 1234 and length to replace i-e 4
{
int g = strlen(abc);
int f = g - len;
j=0;
char[] temp =new char[g];
for (int i = 0; i < g; i++)
{
if (i >= f)
{
temp[i] = replaceWith[j];
j++;
}
else
{
temp[i] = abc[i];
}
}
return temp.ToString();
}
//它会返回某个......