此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。
getline(cin, inputLine);
将带有空格的字符串进行切割,例如“Hello World Here I Come”切成“Hello” “World” “Here” “I” “Come”
istringstream is(str);
string s;
while (is >> s)
{
cout<<s<<endl;
// Hello
// World
// Here
// I
// Come
}
(1)goto
for (int i = 0; i < len1; i++)
{
for (int j = 0; j < len2; j++)
{
if (isupper(c1[i]) && isupper(c2[j]) && c1[i] == c2[j])
{
day = c1[i];
goto breaks;
}
}
}
breaks: cout << day << endl;
(2)break
for (int i = 0; i < strlen(buy); i++)
{
for (int j = 0; j < strlen(sell); j++)
{
if (buy[i] == sell[j])
{
count++;
sell[j] = '*';
break;
}
}
}
int day = int(time[0]);
例如建立了如下一个student结构体
class student
{
public:
int number;
int degrade;
int caigrade;
int sumgrade;
};
其中一个很重要的细节(对我来说)是新建一个student对象时,需要确定对象的长度
student *stu = new student[N];//一定一定不能没有[N]
要根据三个number、degrade、sumgrade条件来对student进行多重排序,可以用sort()方法
#include
sort(student, student+ count1, compare);
具体的compare()方法如下:
//一定要理清楚比较的逻辑,不能随便return
bool compare(student a, student b)
{
if (a.sumgrade == b.sumgrade && a.degrade != b.degrade)
{
return a.degrade > b.degrade;
}
else if (a.sumgrade == b.sumgrade && a.degrade == b.degrade)
{
return a.number < b.number;
}
else
{
return a.sumgrade > b.sumgrade;
}
};
是一种串比较函数:看Asic码,如果str1>str2,返回值 > 0;两串相等,返回0
注意:只针对char,不针对string
#include
#include
#include
#include
#include
using namespace std;
int main()
{
char a[100] = "c";
char b[100] = "az";
if (strcmp(a, b) > 0)
{
cout << 111 << endl;
return true;
}
else
{
cout << 222 << endl;
return false;
}
}
可参考C++ strcmp()
C++字符串使用整理
在c++中,将一个char赋值给另外一个char,不能使用=去赋值,要使用strcpy()
strcpy(peo[count1].name, tempname);//将tempname赋值给peo[count1].nam