我被要求採取從輸入的字符串(其可以是任何大小的),而無需使用C++ string
。我想動態地爲char數組分配空間,並從SO本身獲得了以下實現。但我不確定這是否是一個好的實施。有沒有更好的實現,這不需要你輸入名稱中的元素數量?輸入串不使用C++串
#include<iostream>
int main()
{
int size = 0;
std::cout << "Enter the size of the dynamic array in bytes : ";
std::cin >> size;
char *ptr = new char[size];
for(int i = 0; i < size;i++)
std::cin >> *(ptr+i);
}
到底爲什麼你一定要避免使用C++字符串?你可以自己實現這一點,但它可能相當於做std :: string所做的同樣的事情。 – arghbleargh
@arghbleargh我知道實施它會很痛苦,它只是浪費時間,但在面試時我被問到了這一點。 –
一個字符串通常在輸入文件中沒有預設長度。相反,它是由某些東西(空白,空字符,換行符或其他)分隔的。這個想法是,直到你達到分隔符時才知道長度。否則,讀取* any *長度的字符串與讀取某個*已知固定長度的字符串沒有什麼不同,並且將作業放在這樣一個簡單的問題上是沒有意義的。 –