C于洋的const char *操作问题

ileler 发布于 2015/03/30 16:39
阅读 306
收藏 0

const char *str = "";
for (i = 0; i < size; i++) {
	const char *str1 = "";
	const char *str2 = "";
	if (str == "") {
		str += (str1 + str2);
	} else {
		str += ("-" + str1 + str2);
	}
}



上面这段代码是我按照Java语法写的。。。现在项目中用到JNI。本人不会C/C++、现急需将上面这段代码以纯C语言方式实现、求各位大神指导一下啊、在线等。不能用C++。只能纯C。求帮助~

加载中
0
梦想游戏人
梦想游戏人
按照我的理解,const是该产量不可更改值啊,为嘛不报错
0
songtzu
songtzu
诶,不会C就用Java描述啊。。。你的C代码,看着我很蛋疼。
0
m
magiclogy
你需要使用strcmp,strcat,还有给字符串分配内存malloc
0
中山野鬼
中山野鬼
哈哈,描述这个的人确实高手,以至于我不知道它的本意是什么。。
0
甘薯
甘薯

这啥玩意儿啊,

直接上java代码让人帮你改成C版本...

无语

0
NDSM
NDSM
看的真他妈蛋疼
0
jwyoung
jwyoung
怎么感觉最后str结果是许多个"---------"
0
linshenqi
linshenqi
常量不允许修改,这和加不加const无关。
0
乌龟壳
乌龟壳
#include <stdio.h>
#include <stdlib.h>

int main(){
    int result_size = 0;
    char * result = malloc(1);
    result[0] = '\0';

    const char *str1 = "1234";
    const char *str2 = "abcd";

    int str1_len = strlen(str1);
    int str2_len = strlen(str2);
    int total_len = str1_len + str2_len;

    int size = 5;
    int i;
    for(i=0; i<size; i++){
        if(result_size == 0){
            result = realloc(result, total_len + 1);
            memcpy(result + result_size, str1, str1_len);
            memcpy(result + result_size + str1_len, str2, str2_len);
            result_size += total_len;
        }
        else{
            result = realloc(result, result_size + total_len + 2);
            result[result_size] = '-';
            memcpy(result + result_size + 1, str1, str1_len);
            memcpy(result + result_size + str1_len + 1, str2, str2_len);
            result_size += total_len + 1;
        }
    }
    result[result_size] = '\0';
    printf("%s\n", result);
    return 0;
}


只是抛砖引玉,写得随意,代码质量也不敢恭维,异常处理也都没做。
ileler
ileler
感谢啊。。我去试试~
返回顶部
顶部