删除前一个字符?

时间:2014-04-07 13:00:57

标签: c++

我正在尝试构建一个程序将某个字符串打印到文本文件中,我现在要做的是制作一个“if”命令来删除前一个字符来自另一个特定字符,例如:

if(character 'a' came directly before character 'b')  \\"ab"
delete a ;

对不起我的代码,但我真的不知道怎么做。 谢谢。

5 个答案:

答案 0 :(得分:4)

您需要一个计划:

  • 获取字符串
  • 处理它
  • 获取要输出的文件的名称
  • 将字符串转储到那里

有合理的选择,首先:在程序中对字符串进行硬编码,并对文件的名称进行硬编码。

所以我们留下了处理和倾销:

  • 处理:使用std::string,查找at()方法和erase方法(使用位置,而不是迭代器)
  • 转储:使用std::ofstream,查找其构造函数(采用文件名)并使用<<方法将数据放入其中:myfile << mystring;

答案 1 :(得分:2)

请尝试以下代码:

for (int index = 0; arr[index] != '\0'; index++) 
{
    if(arr[index] == 'a' && (arr[index+1] == 'b')
        continue;
    //write char to file;
}

答案 2 :(得分:0)

#include "stdafx.h"    
#include <string>
#include <regex>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    string test = "asdfabasdabab";
    regex reg(".b");
    test = regex_replace(test, reg, "b");
    cout << test << endl;
}

#include <string>
#include <regex>
#include <iostream>

int main()
{
    std::string test = "asdfabasdabab";
    std::regex reg("ab");
    test = regex_replace(test, reg, "b");
    std::cout << test << std::endl;
}

将此字符串写入文件add:

#include <fstream>

std::ofstream out("output.txt");
out << test;
out.close();

答案 3 :(得分:-1)

这听起来像一个简单的搜索并取代我:替换 "ab" "b" std::string replaceSequence( std::string const& original, std::string const& from, std::string const& to ) { std::string results; std::string::const_iterator start = original.begin(); std::string::const_iterator end = original.end(); std::string::const_iterator next = std::search( start, end, from.begin(), from.end() ); while ( next != end ) { results.append( start, next ); results.append( to.begin(), to.end() ); start = next + (to.end() - to.begin()); next = std::search( start, end, from.begin(), from.end() ); } results.append( start, next ); return results; } 。我通常使用的功能是:

{{1}}

如果你做了很多文字,这是一个很有用的功能 处理

答案 4 :(得分:-2)

可能会有所帮助.............

int main(void)
{
    char* str = malloc(strlen("abcdef")+1);
    strcpy (str, "abcdef");
    removeChar (str, 'b');
    printf ("%s", str);
    free (str);
    return 0;
}

结果:

  
    

acdef     

  

检查以下链接

http://stackoverflow.com/questions/5457608/c-remove-character-from-string
http://www.dreamincode.net/forums/topic/63164-removing-character-from-string/