Memory 字符串及其回文
此函数的目的是创建带有回文的字符串concat。例如 abc->abccba 这是我的代码,结果仍然显示原始字符串,没有任何更改。我为字符串及其回文保留了一些空格,但它仍然不起作用Memory 字符串及其回文,memory,malloc,heap,palindrome,Memory,Malloc,Heap,Palindrome,此函数的目的是创建带有回文的字符串concat。例如 abc->abccba 这是我的代码,结果仍然显示原始字符串,没有任何更改。我为字符串及其回文保留了一些空格,但它仍然不起作用 char *mirror(const char *str) { char *result = malloc(2 * strlen(str) * sizeof(char)); int str_len = strlen(str); for (int i = 0; i < str_len; +
char *mirror(const char *str) {
char *result = malloc(2 * strlen(str) * sizeof(char));
int str_len = strlen(str);
for (int i = 0; i < str_len; ++i) {
result[i] = str[i];
}
for (int j = str_len; j < 2*str_len; ++j) {
result[j] = str[2*str_len-j];
}
return result;
}
char*mirror(const char*str){
char*result=malloc(2*strlen(str)*sizeof(char));
int str_len=strlen(str);
对于(int i=0;i
代码无法分配和追加空字符
最好使用size\t
进行数组索引和大小调整
检查分配失败
char *mirror(const char *str) {
size_t length = strlen(str);
char *result = malloc(2*length + 1); // + 1 for \0
if (result) {
size_t r;
for (r = 0; r < length; ++r) {
result[r] = str[r];
}
size_t j = length;
for (; r < length*2; ++r) {
result[r] = str[--j];
}
result[r] = '\0';
}
return result;
}
char*mirror(const char*str){
长度=strlen(str);
char*result=malloc(2*length+1);//+1表示\0
如果(结果){
大小;
对于(r=0;r