语法:
char* str = "This is GeeksForGeeks";
#include
using namespace std;
int main()
{
// pointer str points to const string literal "Hello".
// No need to declare size.
char* str1 = "This is GeeksForGeeks";
cout << str1 << endl;
int size = 30;
// can allocate size dynamically.
char* str2 = (char*)malloc(sizeof(char) * size);
str2 = "GeeksForGeeks For Everyone";
cout << str2;
return 0;
}
const char* str = "This is GeeksForGeeks";
// CPP program to illustrate assigning
// *char value to other variable
#include
using namespace std;
int main()
{
// This initialization gives warning in C++.
// "deprecated conversion from string constant
// to 'char*'"
char* str = "Hello";
const char* str1 = "Hello"; // No warning
// trying to modify const string literal
// gives Runtime error
str[1] = 'o';
cout << str << endl;
return 0;
}
std::string str = "This is GeeksForGeeks";
str是 std::string类的对象, std::string是basic_string类模板的实例(模板使用char作为它的character type)。
当你用std::string时,不要使用cstring、string.h的方法。因为std::string是basic_string类型,cstring是const char*类型
string有很多的方法,替换、查询等
// CPP program to illustrate
// std::string functions
#include
using namespace std;
int main()
{
// string assignment
string s1 = "Hello";
string s2 = "World";
// return length of string
cout << s1.size() << endl; // 5
cout << s2.length() << endl; // 5
// concatenate string using + operator.
s1 = s1 + s2;
cout << s1 << endl; // HelloWorld
// append string
s1.append("Geeks");
cout << s1 << endl; // HelloWorldGeeks
string s3 = "HelloWorldGeeks";
// compare two strings
if (s1.compare(s3) == 0)
cout << "true" << endl;
else
cout << "false" << endl;
// substring of string s1
// substr(pos, length_of_substring)
string sub = s1.substr(0, 5);
cout << sub << endl; // Hello
// insert into string
// insert(pos, string)
s1.insert(10, "For");
cout << s1 << endl; // HelloWorldForGeeks
string target = "World";
// find a target string in s1
size_t pos = s1.find(target);
if (pos != std::string::npos) // npos=-1
cout << "Found at Position:" << pos << endl; // pos=5
// replace a portion of string s1
// replace(pos, length_of_portion, string_to_replace)
cout << s1.replace(5, 5, "Geeks") << endl; // HelloGeeksForGeeks
return 0;
}
std::string message = "index:" + std::to_string(index);
char *messageChar = new char[message.size() + 1];
std::strncpy(messageChar, message.c_str(), message.size());
const char *finalMessage = &messageChar[0];
delete[] messageChar;
语法
char str[] = "This is GeeksForGeeks";
or
char str[size] = "This is GeeksForGeeks";
// Here str is a array of characters denoting the string.
可以动态修改str内容
// CPP program to illustrate char
// concatenation using standard functions
#include
#include
using namespace std;
int main()
{
// take large size of array
char str[10] = "Hello";
cout << "Before Concatenation : " << str << endl; // Hello
strcat(str, " World");
cout << "After Concatenation : " << str; // Hello World
return 0;
}
#include
#include
using namespace std;
int main()
{
char s1[10] = "Hello";
// return length of s1
cout << strlen(s1) << endl;
char s2[50];
// copies s1 into s2
strcpy(s2, s1);
cout << s2 << endl;
char s3[10] = "World";
// concatenates s3 into s2
strcat(s2, s3);
cout << s2 << endl;
char s4[50] = "HelloWorld";
// return 0 if s2 and s4 are equal.
if (strcmp(s2, s4) == 0)
cout << "true" << endl;
else
cout << "false" << endl;
char s5[30];
// copies first 5 chars of s2 into s1
strncpy(s5, s4, 5);
cout << s5 << endl;
char target[10] = "Hello";
// search for target string in s4
if (strstr(s4, target) != NULL)
cout << "true" << endl;
else
cout << "false" << endl;
return 0;
}