8、与字符串处理相关的几个程序

1、转换字符串的输入格式为:原来字符串里的字符+该字符连续出现的个数,例如字符串:1233422222,转化为1121324125

    我们用sprintf来实现,类同printf

#include "iostream"

#include "string"

using namespace std;



int main() 

{

cout << "Enter the numbers: " << endl;

string str;

cin >> str;

size_t ilength = str.length();

int icount = 1;

char cMyChar[50];

cMyChar[0] = '\0';

int k;

for (k = 0; k < ilength - 1; k++)

{

if (str[k] == str[k + 1]) //预判断

{

icount++; //记录字符个数

}

else

{

sprintf(cMyChar + strlen(cMyChar), "%c%d", str[k], icount);

icount = 1;

}

}



if (str[k] == str[k - 1])

;

else

icount = 1;

sprintf(cMyChar + strlen(cMyChar), "%c%d", str[k], icount);

cout << cMyChar << endl;

return 1;

}

2、整数转换成字符串

#include "iostream"

using namespace std;

int main() 

{

	int iMyData;

	cin >> iMyData;

	char cToTransfer[56];

	char cTemp[56];

	int icount = 0; //标记位数

	while(iMyData)

	{

		cTemp[icount++] = iMyData % 10 + '0';

		iMyData = iMyData / 10;

	}

	cTemp[icount] = '\0';

	cout << cTemp << endl;

	icount--;

	int j = icount, i = 0;

	while(j >=0)

	{

		cToTransfer[i++] = cTemp[j--];

	}

	cToTransfer[i] = 0;

	cout << cToTransfer << endl;

	return 1;

}

3、字符串转换成整数

#include "iostream"

using namespace std;



int main() 

{

	char iMyData[56];

	cin >> iMyData;

	int iToTransfer[56];

	int cTemp[56];

	int icount = 0; //标记位数

    int iSum = 0;

	while(iMyData[icount])

	{

		iSum = iSum * 10 + iMyData[icount] - '0';

		icount++;

	}

	cout << iSum << endl;

	return 1;

}

你可能感兴趣的:(字符串处理)