怎样在字符串中插入数字?

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:53:43
例如:str='abcdefg'插入过后变为str='a2bcdefg'.
答的好再加分
能给个粗略的代码吗?
三楼的兄弟,代码通过不了

sprintf(tmp, 512, "%.*s%d%s", idx, str, val, str+idx);
->
snprintf(tmp, 512, "%.*s%d%s", idx, str, val, str+idx);
没调试,省写了个n,抱歉...
刚试了,在gcc 3.*下编译通过.

--------------------------------------
/**
* str: 目标字符串
* idx: 插入位置(索引)
* val: 插入的数值
**/
char *insertNum(char str[], int idx, int val) {
char tmp[512]; /* 这里定义的临时缓存为512, 所以传入的str长度,加上val的长度不应大于511. */
snprintf(tmp, 512, "%.*s%d%s", idx, str, val, str+idx);
strcpy(str, tmp);
return str;
}

字符串不是用''的吧?
char newstr[30];
memset(newstr, 0, sizeof(newstr));
memcpy(newstr, str, 1);
sprintf(newstr+1, "%d%s", 2, str+1);

把数字转换为字符后,用连接函数连接起来

由于String有不可改变性,所以我们要解决这个问题就要用到StringBuffer,最后在转换成String,代码如下:
public class A {
static StringBuffer sb=new StringBuffer("abcdef");
public static void main(String[] args){
sb.insert(1,"2&quo