注册 登录
编程论坛 C语言论坛

求助: 如何判断路径格式是否正确。

追梦人zmrghy 发布于 2022-12-09 01:17, 1139 次点击
求助: 如何判断路径格式是否正确。

string path0 = "D:\\123\\456";
string path1 = "D:\\123\\456\\";

string path2 = "D:\123\\456";
string path3 = "D:\\123\456";

string path4 = "D:\\\123\\456";
string path5 = "D:\\123\\\456";

只有:path0 和 path1 是正确的。。。
'\' 符号少于2个或多于2个都是错误的。。。。
程序应该如何写?
3 回复
#2
s962812022-12-09 01:32
你的字串裡"\\"會被解釋為'\'
例:
程序代码:
#include <stdio.h>

int main() {
    // Write C code here
    char string[] = "D:\\123\\456";
    for (int i = 0; i < strlen(string); i++) {
        putchar(string[i]);
    }

    return 0;
}

/* 輸出
   D:\123\456
*/
#3
s962812022-12-09 01:51
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main() {
    // Write C code here
    char path[100];
    int x = 0;
    int y = 0;
    scanf("%s", &path);
    for (int i = 1; i < strlen(path); i++) {
        if (path[i-1] == '\\' && path[i] == '\\') {
            x++;
        }
        else {
            x = 0;
        }
        if (x > 1 || (path[i] == '\\' && path[i-1] != '\\' && path[i+1] != '\\')) {
            printf("路徑錯誤");
            exit(1);
        }
    }
    printf("路徑正確");
    return 0;
}
#4
rjsp2022-12-09 10:44
看起来题主的根结是不明白“转义字符”

源代码中的每一个字符都必须是“可显的(对应着C语言中的isprint)”,不是可显字符怎么用眼睛看?但需要表示的字符未必是“可显的”(比如 垂直制表符)。怎么用“可显的字符”来表达“不可显的字符”?
找一个不常用的字符 --- 比如反斜杠字符“\” --- 给它以特殊的意义,比如不可见的字符 char(1),就用 '\1' 来表示了,……;而 \ 本身呢,就用 \\ 来表示。
详见:https://zh.
所以 "D\\1234" 包含7个字符,分别是 D、\、1、2、3、4、char(0)
而 "D\\\1234" 包含5个字符,分别是 D、\、char(0123)、4、char(0)

我用空格来分割你代码中的字符串"D:\123\\456",则是"D : \123 \\ 4 5 6"
我用空格来分割你代码中的字符串"D:\\\123\\456",则是"D : \\ \123 \\ 4 5 6"
1