c++中,字符串结尾必须是’\0’,才能以%s的格式输出,否则还是字符数组,只能以%c的格式输出
c++中对字符串的函数
字符串复制
string str1 = "abc";
string str2 = str1;
cout << str2 << endl;
字符串拼接
string str1 = "abc";
string str2 = "bcd";
string str3 = str1 + str2;
cout << str3 << endl;
字符串比较
string str1 = "abc";
string str2 = "bcd";
if (str1>str2){
cout << 1;
} else{
cout << 2;
}
有1位大小可以比较就直接完成比较
获取字符串长度
string str1 = "aaabzzz";
cout << str1.length();
c++里也有length,不过for里尽量不用length,直接int l = str1.length
否则会每次读取length,有损效率。
盖房子
示例
输入3 4
输出
加减加减加
| * | * | * | * |
加减加减加
| * | * | * | * |
加减加减加
| * | * | * | * |
加减加减加
#include <iostream>
using namespace std;
int main() {
int m,n;
cin >> m >> n;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << "+-";
}
cout << "+";
cout << endl;
for (int j = 0; j < n; j++) {
cout << "|*";
}
cout << "|";
cout << endl;
}
for (int j = 0; j < n; j++) {
cout << "+-";
}
cout << "+";
}
竖着看将两行看成一组,就有3组+1
横着看将两个元素看成一组,就有4组+1
按照这个规律写就好了
——————————————————————————————————————————
示例
输入1
输出A
输入2
输出ABA
输入3
输出ABACABA
输入4
输出ABACABADABACABA
#include <iostream>
#include <string.h>
using namespace std;
char a[50000];
int main() {
int n;
int len = 0;
cin >> n;
for (int i = 0; i < n; i++) {
strcat(a+len+1,a);
a[len] = 'A'+i;
len = strlen(a);
}
cout << a;
}
将a中的元素复制到a中,然后中间留出一个位置给’A’+1
重点就是找这个位置了
这里是用strlen(a)来找的,老师牛的