我可以更改已初始化的字符串变量的最后4个字母吗?

时间:2018-01-28 05:02:30

标签: c

在C中,如果我有一个分配给变量的字符串,并且我想只更改该字符串中的最后4个字母,我应该怎么做? strcat()?类似的东西:

int size;
char a[10] = "something";
size = strlen(a) - 4;

strcat(a + size, "1234");

那会有用吗?获得somet1234?或者只是something1234

3 个答案:

答案 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();
    } 

//它会返回某个......