作业帮 > 综合 > 作业

VC++一个算法问题现在CString 类型的数组g_sendFile[i],存储着E:\nm\area\src\are

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 15:03:49
VC++一个算法问题
现在CString 类型的数组g_sendFile[i],存储着E:\nm\area\src\area.txt,E:\nm\school\src\school.txt 这样类型的变量,现在我要写一个函数,去掉盘符,并且把\转换成/ 符号,例如:E:\nm\area\src\area.txt 变成 /nm/area/src/area.txt
修改后的变量,需要存到g_RemoteFile[i]里
CString串可以当作char s[]来处理.
1、从s[0]开始,查找冒号":",找到后,此位置当作返回串的首地址.
2、继续往后找,找到"\"就更换为"/",知道串尾.
/*
s1改动前:E:\nm\area\src\area.txt
s1改动后::/nm/area/src/area.txt
s2改动前:E:\nm\school\src\school.txt
s2改动后::/nm/school/src/school.txt
Press any key to continue
*/

#include <stdio.h>

char *Change(char s[]) {
\x05int i = 0,pos = 0;
\x05while(s[i]) {
\x05\x05if(s[i] == ':') {
\x05\x05\x05pos = i;
\x05\x05\x05break;
\x05\x05}
\x05\x05++i;
\x05}
\x05while(s[i]) {
\x05\x05if(s[i] == '\\') { // 不能用'\'
\x05\x05\x05s[i] = '/';
\x05\x05}
\x05\x05++i;
\x05}
\x05return s + pos;
}

int main() {
\x05char s1[] = "E:\\nm\\area\\src\\area.txt";
\x05char s2[] = "E:\\nm\\school\\src\\school.txt";
\x05printf("s1改动前:%s\n",s1);
\x05printf("s1改动后:%s\n",Change(s1));
\x05printf("s2改动前:%s\n",s2);
\x05printf("s2改动后:%s\n",Change(s2));
\x05return 0;
}