【发布时间】:2019-11-19 02:52:15
【问题描述】:
这是我尝试的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *convertDirec(char direc[]){
for(int i = 0; i < strlen(direc); i++){
if(direc[i]=='/'){
direc[i]=='\\';
}
}
return direc;
}
int main(){
printf("%s", convertDirec("C:/Users/user/Documents/data.csv"));
}
但是,main 中的 printf 语句仅打印相同的路径。我在网上找到了另一个关于此的资源,逻辑似乎与我的相同,所以我不确定我的错误在哪里。我尝试做direc[i] == "/",但这给出了相同的结果。我也尝试替换随机字母,但这也失败了。
我也尝试使用指针来执行此操作,但这也不起作用。
char *convertDirec(char direc[]){
for(char *p = direc; *p != '\0'; ++p){
if(*p == '/')
*p='\\';
}
return direc;
}
感谢您的帮助,谢谢。
【问题讨论】:
-
"C:/Users/user/Documents/data.csv"这是一个字符字面量,只读... -
打开编译器警告:它应该会提醒您将 const 数组传递给函数的问题。
-
@Jean-FrançoisFabre 我可能会误解,但函数不是这样分配它
char direc[] = "C:/Users/user/Documents/data.csv",这不是字面意思吗? -
即使有,缓冲区会分配到哪里?
-
啊这是一个错字问题...
==而不是=