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ạ =))
Các thao tác cơ bản với mảng kí tự
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
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?
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;
}
Mọi người ơi cho em hỏi đây là lỗi gì với ạ?
{
char nig[50], minecraft[50];
cout << "Enter a string: ";
cin.getline(nig, 50);
strncpy(minecraft, nig); //Lỗi ở đây ạ
cout << "Minecraft string right now is: " << minecraft << endl;
return (0);
}
VS lại bắt dùng cái strcpy_s
bây giờ :gach:
Thế mà em không để ý, cảm ơn anh
int32_t match_index = (p - text) / sizeof(char);
chỗ sizeof(char) này bỏ đi vẫn ra kết quả là 10 thì bỏ đi có được ko ạ
Được vì lúc trừ nó đã chia cho sizeof(*p) rồi.
Bài 2:
#include <iostream>
#include <array>
#include<string.h>
using namespace std;
int main(){
char mang[]="This is a simple string";
char ch[] = "i";
int k=0;
for(int j=0;j<strlen(mang)-1;j++){
if(mang[j]==ch[0]){k=k+1;}
}
cout<<k; }