ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

用C代码转换字符串

2019-10-10 03:09:19  阅读:681  来源: 互联网

标签:c string



我正在学习C语言并正在开发一个项目进行练习,但是现在我想在代码中转换一个变量(字符串),就像这样,用户有一个包含C代码的文件,但是我希望我的程序读取该文件并插入将其放入代码中,如下所示:

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main( int argc, char* argv[] )
{
    ifstream file(argv[ 1 ]);
    if (!file.good()) {
       cout << "File " << argv[1] << " does not exist.\n";
      return 0;
    }
    string linha;
    while (!file.eof())
    {
    getline(file, linha);
    if (linha.find("code") != string::npos)
       {
          size_t idx = linha.find("\""); //find the first quote on the line
          while ( idx != string::npos ) {
             size_t idx_end = linha.find("\"",idx+1); //end of quote
             string quotes;
             quotes.assign(linha,idx,idx_end-idx+1);
             // do not print the start and end " strings
             cout << quotes.substr(1,quotes.length()-2) << endl;
             //check for another quote on the same line
             idx = linha.find("\"",idx_end+1);
             } 
       }
    }
  return 0;
}

这是一个文件示例:

code "time_t seconds;\n seconds = time (NULL);\n cout << seconds/3600;"

但是,当我运行该程序时,它不会将字符串隐藏到代码中,但它会完全打印引号中的内容.

谢谢!

解决方法:

你在做提示吧?所以很明显它被显示了.

也许您要尝试的是在正在运行的进程(如http://www.codeproject.com/KB/DLL/code_injection.aspx)中进行一些代码注入



标签:c,string
来源: https://codeday.me/bug/20191010/1883692.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有