Các thao tác cơ bản với mảng kí tự

bạn để dòng #pragma disable(warning:4996) lên đầu file coi được không. Cái lỗi nhìn hơi lạ lạ =))

không được luôn bạn ơi, nó cũng bị lỗi y chan như vậy.

Sau một hồi tìm kiếm trên mạng, người ta nói không nên sử dụng ‘strcpy’ vì nó không an toàn ('có khả năng bị lỗi dẫn đến tràn chỗ chứa) và khuyên chuyển sang dùng ‘strcpy_s’

Sao bạn biết hàm toupper hay vậy? Mình trừ 32 :)))) mở ascii

Bài tập 1: Chuỗi ký tự

#include <iostream>

using namespace std;

int main() {

	char text[] = "This is a simple string";

	for (unsigned int i = 0; i < strlen(text); i++) {

		if (int(text[i]) >= 97 && int(text[i]) <= 122) {

			text[i] -= 32;
		}
	}

	cout << text << endl;

	system("pause");
	return 0;
}

Bài 2: Chuỗi ký tự

#include <iostream>

using namespace std;

int main() {

	char str[] = "My name is bill";
	char ch = 'n';

	int count = 0;

	for (unsigned int i = 0; i < strlen(str); ++i) {

		if (ch == str[i]) {

			++count;
		}
	}

	system("pause");
	return 0;
}

Mình muốn hỏi cách yêu cầu người dùng nhập đoạn string thì như nào bạn

2 Likes

Bạn có thể làm bài một bằng cách yêu cầu người dùng nhập chuỗi ký tự k?

Mình muốn dùng memset để chèn vào kí tự ở một vị trí bất kỳ thì làm thế nào mọi người?

memset sao có thể dùng để chèn kí tự vào 1 vị trí nhất định được?

1 Like

Bạn thêm & vào vị trí của chuỗi mà bạn muốn chèn ký tự. Ví dụ:

    char foo[] = "Almost every programmer should know memset!";
    	cout << foo << endl;

    	// Chen 7 ky tu * vao chuoi foo bat dau tu ky tu thu 5
    	memset(&foo[4], '*', 7);
    	cout << foo << endl;

Kết quả

Almost every programmer should know memset!
Almo*******y programmer should know memset!

Bài 2:

#include <iostream>
#include <cstring>

using namespace std;

#define MAX_STR 100

int main()
{
	char str[MAX_STR], chr[2] ;
	cout << "Enter a string: "; cin.getline(str,MAX_STR);
	cout << "Enter a character : "; cin.getline(chr,2);

	int count=0;
	for(int i=0;i<=strlen(str)-1;i++)
	{
		if (str[i]==chr[0])
			count++;
	}

	cout<<"Character "<<chr<< " appears "<< count<<" time(s) in the string"<<endl;

	return 0;
}

/Bài 2:

#include <stdio.h>
#include <iostream>
#include <string>
#include <ctype.h>

using namespace std;

int main( int argc, const char * argv[]) {
    //nhập chuỗi ký tự
    char str[256];
    cout << "Nhap chuoi ky tu: "; cin.getline(str, 256);

    //nhập ký tự
    char ch;
    cout << "Nhat ky tu can dem: "; cin >> ch;

    //tạo biến đếm số lượng
    int dem = 0;

    //đếm ký tự nhập trùng với ký tự chuỗi
    for (int64_t i = 0; i< strlen(str); i++) {
        if (ch == str[i])
            dem++;
    }

    cout << "So luong ky tu trong chuoi la: " << dem << endl; //xuất số lượng
    return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?