📄 string1.cpp
字号:
/* The following code example is taken from the book * "The C++ Standard Library - A Tutorial and Reference" * by Nicolai M. Josuttis, Addison-Wesley, 1999 * * (C) Copyright Nicolai M. Josuttis 1999. * Permission to copy, use, modify, sell and distribute this software * is granted provided this copyright notice appears in all copies. * This software is provided "as is" without express or implied * warranty, and with no claim as to its suitability for any purpose. */#include <iostream>#include <string>using namespace std;int main (int argc, char* argv[]){ string filename, basename, extname, tmpname; const string suffix("tmp"); /* for each command-line argument * (which is an ordinary C-string) */ for (int i=1; i<argc; ++i) { // process argument as file name filename = argv[i]; // search period in file name string::size_type idx = filename.find('.'); if (idx == string::npos) { // file name does not contain any period tmpname = filename + '.' + suffix; } else { /* split file name into base name and extension * - base name contains all characters before the period * - extension contains all characters after the period */ basename = filename.substr(0, idx); extname = filename.substr(idx+1); if (extname.empty()) { // contains period but no extension: append tmp tmpname = filename; tmpname += suffix; } else if (extname == suffix) { // replace extension tmp with xxx tmpname = filename; tmpname.replace (idx+1, extname.size(), "xxx"); } else { // replace any extension with tmp tmpname = filename; tmpname.replace (idx+1, string::npos, suffix); } } // print file name and temporary name cout << filename << " => " << tmpname << endl; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -