📄 clanstring_generic.cpp
字号:
/* $Id: clanstring_generic.cpp,v 1.11 2003/09/08 15:08:51 grumbel Exp $
**
** ClanLib Game SDK
** Copyright (C) 2003 The ClanLib Team
** For a total list of contributers see the file CREDITS.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "Core/precomp.h"
#include "clanstring_generic.h"
#include <stdio.h>
/////////////////////////////////////////////////////////////////////////////
// CL_String_Generic construction:
CL_String_Generic::CL_String_Generic() : next_arg(1)
{
}
CL_String_Generic::~CL_String_Generic()
{
}
/////////////////////////////////////////////////////////////////////////////
// CL_String_Generic attributes:
/////////////////////////////////////////////////////////////////////////////
// CL_String_Generic operations:
void CL_String_Generic::replace_arg(const std::string &str)
{
char buffer[32];
buffer[0] = '%';
sprintf(buffer+1, "%d", next_arg++);
std::string::size_type pos = data.find(buffer);
if (pos == data.npos) return; // %n not found.
data = data.substr(0, pos) + str + data.substr(pos + strlen(buffer));
}
void CL_String_Generic::copy(CL_String_Generic *other)
{
data = other->data;
next_arg = other->next_arg;
}
std::vector<std::string> CL_String_Generic::tokenize(const std::string &str_delimit) const
{
std::vector<std::string> ret;
std::string delimit = str_delimit;
std::string::size_type last_pos = data.find_first_not_of(delimit, 0);
std::string::size_type pos = data.find_first_of(delimit, last_pos);
while (std::string::npos != pos || std::string::npos != last_pos)
{
ret.push_back(data.substr(last_pos, pos - last_pos));
last_pos = data.find_first_not_of(delimit, pos);
pos = data.find_first_of(delimit, last_pos);
}
return ret;
}
/////////////////////////////////////////////////////////////////////////////
// CL_String_Generic implementation:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -