gpt4 book ai didi

c - 从命令行获取参数并将它们放入正则表达式语句中

转载 作者:行者123 更新时间:2023-11-30 16:51:14 25 4
gpt4 key购买 nike

任务是编写一个从文本文件读取并写入其他文本文件的程序仅命令行参数中给出的符号示例:
程序a-z in.txt out.txt
只会将 a-z 范围内的字母写入文件 out.txt。
程序a-9 in.txt out.txt
只会将 a-z0-9 范围内的字母写入文件 out.txt。
可以假设所有输入的数据都是正确的。

这是我的尝试:

 int main(int argc, char** argv)
{
FILE *fileIn, *fileOut;
fileIn = fopen(argv[2] , "rb");
fileOut = fopen(argv[3] , "wb");
char *arguments = argv[1];

printf("%d - %d\n", arguments[0], arguments[2]);
char a;
do
{
a = fgetc(fileIn);
if( a > arguments[0] && a < arguments[2])
fputc(a, fileOut);
} while (a != EOF);

fclose(fileIn);
fclose(fileOut);
return 0;
}

我的第一个想法是采用参数并将它们用作 ascii 限制器
它以某种方式适用于 a-z 但不适用于其他
问题是:
我该如何改进这个?
我应该改变方式来做到这一点吗?

最佳答案

我会将您的 if 语句修改为如下所示:

if(arguments[2] >= '0' && arguments[2] <= '9') {
if((a >= arguments[0] && a <= arguments[0]) || (a >= '0' && a <= arguments[2]))
{
fputc(a, fileout);
}
}
else if(arguments[2] >= 'a' && arguments[2] <= 'z' && arguments[0] >= 'a' && arguments[0] <= 'z') {
if(a >= arguments[0] && a <= arguments[2]) {
fputc(a, fileout);
}
}

关于c - 从命令行获取参数并将它们放入正则表达式语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41857689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com