C ++ / C:修剪文本文件每行的第一个单词

时间:2011-05-21 19:43:17

标签: c++ c string

我正在寻找一个C / C ++甚至C#代码来修剪文本文件中每行的第一个单词

e.g。 file.txt的

test C:\Windows\System32\cacl.exe
download C:\Program Files\MS\

所以我将离开:

C:\Windows\System32\cacl.exe
C:\Program Files\MS\

我有当前的代码,但它似乎不起作用:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    char s[2048];
    while (fgets(s, sizeof(s), stdin))
    {
        char *pos = strpbrk(s, "|\r\n");
        if (pos != 0)
            fputs(pos+1, stdout);
    }
    return 0;
}

4 个答案:

答案 0 :(得分:3)

#include <iostream>
using namespace std;

int main()
{
   string tmp;
   while ( !cin.eof() )
   {
      cin >> tmp;
      getline(cin, tmp);
      cout << tmp << endl;
   }
}

答案 1 :(得分:3)

C#:

var lines = File.ReadAllLines("...");
var removedFirstWords = from line in lines
                        select line.SubString(line.IndexOf(" ")+1);

(没检查。可能包含错误)

答案 2 :(得分:2)

在C#中:

var fileContent = File.ReadAllText(@"c:\1.txt");
var result = Regex.Replace(fileContent, @"^\w*\s+(.*)$", "$1", RegexOptions.Multiline);
File.WriteAllText(@"c:\2.txt", result);

答案 3 :(得分:1)

C#: -

string line = "test C:\Windows\System32\cacl.exe";

string output = line.substring(line.IndexOf(" "));