Em đang làm thử hàm, trong đó, hàm này sẽ cắt 1 chuỗi bắt đầu từ vị trí pos
mà mình nhập vào cho đến hết chuỗi lớn.
Sau đó gán chuỗi mới đó (em tạm gọi là subString
).
Đây là code của em:
char* cut(char* str, int pos, char* subStr)
{
char word;
int index = 0;
do{
word = str[pos];
subStr[index] = word;
pos++; index++;
}while(word != '\0');
str[pos] = '\0';
// return str;
}
int main()
{
int time, pos = 5;
char str[] = "Hello World";
char subStr[] = "";
cut(str, pos, subStr);
std::cout << str << std::endl << subStr << std::endl;
return 0;
}
Với vị trí 5, em muốn chuỗi chính sẽ bị cắt ra, thì output sẽ là:
str: "Hello"
subStr: " World"
Thế nhưng kết quả lại ra:
str: "World"
subStr: " World"
Sau khi debug thì em thấy ở cái dòng
subStr[index] = word;
Nó sẽ thay đổi luôn cả 2 chuỗi.
Có cách nào khắc phục cái này không ạ ?