01/10/2018, 10:46

Lỗi thực thi hàm

Em muốn cứ mỗi dấu cách thì chữ cái tiếp theo được viết hoa, kiểu giống như viết họ và tên của một người ấy. Nhưng khi em nhập một chuỗi kí tự thì chuỗi sau đó chỉ hiện đúng 1 kí tự. Mọi người xem code rồi cho e ý kiến ạ, e xin cảm ơn.

#include <iostream>
#include<string>
#include <ctype.h>
#include<cctype>
#include<cstdlib>

using namespace std;

void upper(string hoten, int sokitu)
{
	hoten[0] = toupper(hoten[0]);
	for (int i = 1; i < sokitu; i++)
	{
		if (hoten[i] = ' ')
		{
			hoten[i+1] = toupper(hoten[i+1]);
		}
	}
	cout << "ho va ten sau khi sua: " << hoten;
}

int main()
{
	string hoten;
	cout << "Nhap ho va ten: ";
	getline(cin, hoten);
	int sokitu = hoten.size();
	upper(hoten, sokitu);
	cout << endl;
	system("pause");
	return 0;
}
Duc Khan viết 12:48 ngày 01/10/2018

if (hoten[i] = ’ ')
{
hoten[i+1] = toupper(hoten[i+1]);
}

hoten[i] == ' ' nhé.

Phạm Minh Anh Hữu viết 12:46 ngày 01/10/2018
void upper(string hoten, int sokitu)
{
	hoten[0] = toupper(hoten[0]);
	for (int i = 1; i < sokitu; i++)
	{
		if (hoten[i] = ' ') // "==" chứ không phải "=", Bạn đang gán mà :) 
		{
			hoten[i+1] = toupper(hoten[i+1]);
		}
	}
	cout << "ho va ten sau khi sua: " << hoten;
}
Phong Triệu viết 12:55 ngày 01/10/2018

ờ nhờ lỗi bé thế này mà ko nghĩ ra trời ơi =.=

Bài liên quan
0