相关疑难解决方法(0)

在 C++ 中分割字符串(使用 strtok?),用逗号分隔符分隔并且不使用外部库?

我对编码真的很陌生,并且在尝试在 C++ 中拆分字符串时遇到了一些麻烦。我想知道如何拆分字符串,该字符串const char names[] (i.e. "Mary, Jan, Jane")在 C++ 中作为 a 输入,而不使用任何外部库(即我不想使用#include <string>等 - 尽管我可以使用#include <cstring>)。

我尝试过使用:

const char names[] = "Mary, Jan, Jane";

char *token = strtok(names, ",");
while (token != NULL) {
    token = strtok(NULL, " ");
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法传递一个 const 字符数组,我还想知道如何访问所有单独的“令牌”?

另外,我尝试将输入更改为 just char names[](但我确实需要输入为常量),并且出现分段错误,我不明白为什么。

c++ arrays string char

1
推荐指数
1
解决办法
3670
查看次数

排序文件中的字符串

我需要一个解决方案,使用基于姓氏的C++对unix pwd文件进行排序.该文件的格式是用户名,密码,uid,gid,name,homedir,shell.所有都是由冒号分隔符分隔.名称字段包含按姓氏分隔的名字,按空格分隔我可以使用地图对值进行排序,我发布了我的代码.有人可以向我建议我可以对我的代码做些改进吗.此外,我无法在我的文件中看到排序的行.

string line,item;
fstream myfile("pwd.txt");
vector<string> lines;
map<string,int> lastNames;
map<string,int>::iterator it;

if(myfile.is_open())
 {    
  char delim =':';
  int count =0;
  while(!myfile.eof())
  {
    count++;
    vector<string> tokens;
    getline(myfile,line);
    istringstream iss(line);

    lines.push_back(line);

    while(getline(iss,item,delim))
    {
        tokens.push_back(item);
    }
    cout<<tokens.size()<<endl;;
    size_t i =tokens[4].find(" ");
    string temp = tokens[4].substr(i,(tokens[4].size()-i));
    cout<<temp<<endl;

    lastNames.insert(pair<string,int>(temp,count));
    tokens.clear();

  }

    myfile.seekg(0,ios::beg);

    for(it=lastNames.begin();it!=lastNames.end();it++)
  {
         cout << (*it).first << " => " << (*it).second << endl;
         int value=lastNames[(*it).first ];
         myfile<<lines[value-1]<<endl;
         cout<<lines[value-1]<<endl;
         cout<<value<<endl;
  }

}
Run Code Online (Sandbox Code Playgroud)

此外,我有问题写入文件我无法看到排序的结果.

我的问题:

    Can someone please explain me why I am unable to …
Run Code Online (Sandbox Code Playgroud)

c++

0
推荐指数
1
解决办法
1112
查看次数

在C中以#分割字符串

我有一个像这样的字符串:

char *message = "12#34#56#78#90"
Run Code Online (Sandbox Code Playgroud)

我想得到:

a = "12"
b = "34"
c = "56"
d = "78"
d = "90"
Run Code Online (Sandbox Code Playgroud)

谁能给我一个好方法?

c string split

0
推荐指数
1
解决办法
271
查看次数

用C++拆分字符串

可能重复:
如何在C++中拆分字符串?
C++拆分字符串

我如何从文件中拆分C++中的行,如下所示?

我想保存具有以下格式的游戏输出结果:

CFC 1 - 0 RES
Run Code Online (Sandbox Code Playgroud)

我有四个变量:

string team1;
string team2;
int goalst1;
int goalst2;
Run Code Online (Sandbox Code Playgroud)

如何拆分字符串,使每个相应的部分都在上面的四个变量中?

c++ string split

0
推荐指数
1
解决办法
1103
查看次数

在VC++中通过regex拆分字符串

我在一个项目中使用VC++ 10.作为C/C++的新手,我只是谷歌搜索,似乎在标准C++中没有正则表达式?VC++ 10似乎有正则表达式.但是,我如何进行正则表达式拆分?我是否需要提升?

在网上搜索,我发现许多人推荐使用Boost进行许多操作,标记/拆分字符串,解析(PEG),现在甚至是正则表达式(尽管这应该是内置的......).我能否得出结论提升是必须的?它的180MB只是琐碎的东西,在许多语言中天真地支持?

c++ visual-c++

0
推荐指数
1
解决办法
4770
查看次数

以相反顺序打印输入字符串字

使用if while/do- while,我的工作是以相反的顺序打印以下用户的输入(字符串值).

例如:

输入字符串值:"你是美国人"以相反的顺序输出:"American are You"

有没有办法做到这一点?

我试过了

string a;
cout << "enter a string: ";
getline(cin, a);
a = string ( a.rbegin(), a.rend() );
cout << a << endl;
return 0;
Run Code Online (Sandbox Code Playgroud)

...但这会颠倒单词拼写的顺序,而拼写不是我想要的.

我也应该加入ifwhile声明,但不知道如何.

c++ string reverse

0
推荐指数
1
解决办法
2万
查看次数

解析并向矢量添加字符串

我有以下字符串"0 1 2 3 4"(字符串末尾有一个空格).我想拆分并添加到字符串向量.当我使用循环和字符串流时,程序将自身循环到最后一个数字为4的无限循环中.它不想停止.

如何拆分以下内容并同时添加到字符串向量.

请指教.

stringstream ss(currentLine);
for(int i=0;i<strlen(currentLine.c_str());i++){
      ss>>strCode;
      strLevel.push_back(strCode);
    }
Run Code Online (Sandbox Code Playgroud)

c++ split loops vector

0
推荐指数
1
解决办法
582
查看次数

C++如何删除字符串中的certan字符?

你好,所以我基本上都是想做这样的事情.

PrintOpt("Hello | I | Am | Awesome");
Run Code Online (Sandbox Code Playgroud)

在我的PrintOpt代码中

void PrintOpt(char* Text){
     if(!strcmp(Text, " | ")){
           Text = "\n";
     }
     printf(Text);
}
Run Code Online (Sandbox Code Playgroud)

我希望它能像这样打印出来

Hello
I
Am
Awesome
(On a new line)
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,它不打印任何东西.有谁知道为什么这不起作用?谢谢

c++

0
推荐指数
1
解决办法
87
查看次数

Ifstream,面对特定角色后如何阅读下一行

    (example.txt)
    Tommy:16:Male
    Sam:23:Female
Run Code Online (Sandbox Code Playgroud)

我想用C++编写代码,使用ifstream而不是整行来从文本文件中获取数据.例如,第一列代表Name,我只想获取Name数据.

有没有办法分割":"这个字符,就像Java line.split(":")一样.

c++ split ifstream

0
推荐指数
1
解决办法
381
查看次数

在 C++ 中拆分字符串的最佳实践

我正在学习 C++ 以进行竞争性编程。我最近遇到一个问题,需要将字符串拆分为向量(我来自Python和JavaScript背景,所以有一个简单的内置函数负责拆分字符串)

C++中有类似的东西吗?一种节省时间的简单方法。我很感激你的意见

谢谢你!

c++ arrays string

0
推荐指数
1
解决办法
3577
查看次数

标签 统计

c++ ×9

string ×5

split ×4

arrays ×2

c ×1

char ×1

ifstream ×1

loops ×1

reverse ×1

vector ×1

visual-c++ ×1