删除字符串串首零的方法

假设字符串为00001,最后要输出1.

方法1:用bool值记录零值

#include<iostream>
#include<cstring>
using namespace std; 
char a[] = "00001";
int main()
{
	int n = strlen(a);
	bool flag = false;
	for(int i = 0; i < n; ++i)
	{
		if(a[i] != '0') flag = true;//删除串首的零。 
		if(flag) cout << a[i];
	}
	if(!flag) cout << "0" << endl;//如果全为0就输出0 
	return 0;
}

方法2:指针的方法,碰到指针就往后移,跳过0即可。

#include<iostream>
#include<cstring>
using namespace std; 
char a[] = "00001";
int main()
{
	int n = strlen(a);
	int i = 0;
	while(i < n && a[i] == '0') i++;//删除前导0,如果遇到0,指针i往后移 
	if(i == n) cout << "0" << endl;
	else
	{
		for(int j = i; j < n; ++j)
			cout << a[j];
	} 
	return 0;
}

猜你喜欢

转载自blog.csdn.net/yanyanwenmeng/article/details/83052319