SPEAKER: Hãy viết một chương trình cố gắng sao chép hai dây. Tôi đã gạt bắt đầu bằng cách đầu tiên in ra "Nói cái gì đó." Tôi tiếp theo gọi GetString, lưu trữ giá trị trả về trong s. Và sau đó tôi chắc chắn s mà không phải là null. Chúng ta hãy tiếp theo làm cho bản sao của chúng ta về S. tôi sẽ để khai báo một biến mới, t, và lưu trữ trong nó s. Tôi tiếp theo sẽ yêu cầu bồi thường, với printf, mà tôi sẽ tận dụng bản sao đó. Tôi tiếp theo sẽ kiểm tra t mà là ở ít nhất lớn hơn 0 trong chiều dài để Tôi không vô tình cố gắng tận thư đó là không có. Một lần tôi chắc chắn rằng, tôi sẽ thay đổi giá trị tại thời điểm t khung từ 0 đến là sự trở lại giá trị của toupper, một chức năng mà chuyển đổi đầu vào của nó thành chữ hoa, đi qua trong khi t khung đầu vào của nó 0. Cuối cùng, tôi sẽ in ra những gì giá trị ban đầu là, trong đó, Tất nhiên, là s. Và sau đó tôi sẽ in những gì giá trị của bản sao là, đó là t. Khi tôi bây giờ biên dịch và chạy chương trình này, Tôi hy vọng sẽ nhìn thấy ban đầu của tôi đầu vào theo sau là một bản sao chỉ với bản sao hoa. Nhưng hãy kiểm tra. Làm sao 0,. / Sao chép 0. Và tôi sẽ cung cấp một đầu vào, nói rằng, hello, nhưng trong tất cả các chữ thường, và sau đó nhấn Enter. Thật không may, có vẻ như cả hai gốc và bản sao bây giờ "Hello" với H. vốn Nhưng đó rõ ràng không phải những gì tôi đã gõ. Vì vậy, rõ ràng, khi tôi viết hoa t, tôi bằng cách nào đó vốn s, mặc dù tôi nghĩ rằng tôi đã làm một bản sao của s và gọi đó là t. Chắc chắn, một cái gì đó ở đây là sai. Nhưng làm thế nào chúng ta có thể khắc phục?