参数解析(c++,每日一题)

朱雀 2023-02-17 15:54 79阅读 0赞

在命令行输入如下命令:

xcopy /s c: d:\

各个参数如下:

参数1:命令字 xcopy

……..

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FtYmlndW91c19f_size_16_color_FFFFFF_t_70

  1. #include<iostream>
  2. #include<string>
  3. #include<vector>
  4. using namespace std;
  5. int main()
  6. {
  7. int i = 0, l = 0;
  8. string s;
  9. while (getline(cin, s))
  10. {
  11. vector<string>k;
  12. for (int o = 0; i < s.size(); o++)
  13. {
  14. string q;
  15. for (; i < s.size(); i++)
  16. {
  17. if (s[i] == '"'&&l == 0)
  18. {
  19. l = 1;
  20. continue;
  21. }
  22. if (s[i] == '"'&&l == 1)
  23. {
  24. l = 0;
  25. continue;
  26. }
  27. if (l == 1)
  28. {
  29. q.push_back(s[i]);
  30. }
  31. if (s[i] != ' '&&l == 0)
  32. {
  33. q.push_back(s[i]);
  34. }
  35. if (s[i] == ' '&&l == 0 || s[i + 1] == '\0')
  36. {
  37. k.push_back(q);
  38. i++;
  39. break;
  40. }
  41. }
  42. }
  43. cout << k.size() << endl;
  44. for (i = 0; i < k.size(); i++)
  45. {
  46. cout << k[i] << endl;
  47. }
  48. i = 0;
  49. }
  50. }

变量 l 是用来判断字符中是否有”引号,若有则 l 的变量设为1,不选择空格式的输入到string q 里,直到再次遇到”引号时,把 l 的变量设置为0,完成对string q 的输入。

发表评论

表情:
评论列表 (有 0 条评论,79人围观)

还没有评论,来说两句吧...

相关阅读