1.gets问题

考试中请不要使用gets函数读取字符数组。可以用cin的方式读取。如果是字符串,请直接使用string及getline的方式读取。

2.strlen问题

在考试中,如果使用strlen函数,那么最好不要出现在循环和判断的内部。例如

int main()
{
	char a[500];
	cin>>a;
	for(int i=0;i<strlen(a);i++)  //这种写法会让时间复杂度由O(n)变成O(n^2)
	{
		cout<<a[i]<<endl;
	}

}

应该改成这样:

int main()
{
	char a[500];
	cin>>a;
        int len =strlen(a);
	for(int i=0;i<len;i++)  
	{
		cout<<a[i]<<endl;
	}

}

同理,像if这样的语句中,尽量也不要出现 strlen,应该把他放到外面。


返回目录:NOIP/CSP信息学奥赛复赛