Sai đâu mà sai cậu ?C++ Code:
#include <iostream> #include <cstring> char* upper_case(char *s){ char* sPtr = new char[strlen(s) + 1]; char* p = sPtr; for(;*s!='\0'; ++s){ *p++ = *s - 32; } *p = '\0'; return sPtr; } int main(){ char* str = "congdongcviet"; char* str1; str1 = upper_case(str); delete [] str1; // error why? return 0; }
trong các header của C++ không có iostream.h không có string.h
Nếu thực sự cậu viết C++ :
- #include <iostream>
- #include <cstring>
và phải dùng using namespace std;
hoặc :
using std::cout;
using std::cin;
hoặc dùng thẳng trong câu lệnh.
Thêm nữa mấy cái dấu ngoặc của cậu thêm vào return () để làm gì, nó chẳng có 1 ý nghĩa gì, nếu không có thì đừng add vào.
Còn về bài trên, thao tác trực tiếp vào chuỗi cũng được, vấn đề là size không của chuỗi không thay đổi nên chẳng cần cấp phát động làm gì !