1。 创建全局字符串数组名称inputData和大小100-输入字 创建大小=输入字的动态数组;
2。 添加动态数组,指向所有单词的库存指针。输入新单词效果显示所有单词。如果数组太小,则是双数组大小。
所以我现在如何做第一个数组,创建数组和输入循环,但我现在不是如何将数字添加到数组而是覆盖然后显示所有单词。有帮助吗? 也许我只是不明白这个任务。
#include <iostream>;
#include <string.h>;
#include <stdio.h>
char *inputData= new char[100];
using namespace std;
int main(){
// cin>>::inputData;
//char* tablica2= new char (strlen(inputData));
cout<<"how many words"<<endl;
int input;
cin>>input;
int temp=0;
int len=0;
char *tab1= new char[input];
for(int i=0;i<input;i++){
cout<<" enter word "<<i+1<<endl;
char* tem2= new char[20];
cin>>::inputData;
len=len+strlen(::inputData);
cout<<len;
// int temp= temp+ strlen(::inputData);
//cout<<::inputData[temp];
// *(inputData+i)=*tem;
}
答案 0 :(得分:0)
我不确定我是否理解你想要做什么,但也许你可以使用ostrstream类来解决你的部分问题:
#include <iostream.h>
#include <strstream.h>
using namespace std;
main(){
char buf[100];
ostrstream out(buf,sizeof(buf)) //opens output array,like cout but,
//writes the data to the array.
out << "Write text that will be written into buf\n";
out << "This will be attached";
out << ends; //ensures that buf is null-terminated
cout << buf;
return (0);
}
希望有所帮助。
答案 1 :(得分:0)
如果您想获得带有空格的用户输入,可以使用以下代码:
#include <string.h>
#include <iostream>
using namespace std;
int main(void) {
string name;
getline(cin, name);
cout << name << endl;
return (0x0);
}
如果您想将数据复制到旧的cstring:
char* old_cstr;
old_cstr = new char[name.length() + 1];
strcpy(old_cstr, name.c_str());
cout << old_cstr << endl;
答案 2 :(得分:0)
好的,我这样做,一切正常。 (第一个循环清除inputData-删除看起来不起作用)
int main(){
for(int i=0;i<99;i++){
::inputData[i]='\0';
}
//cin<<::inputData;
//char* tablica2= new char (strlen(inputData));
cout<<"how many words"<<endl;
int input;
cin>>input;
int temp=0;
int len=0;
char *tab1= new char[input];
for(int i=0;i<input;i++){
cout<<" enter word "<<i+1<<endl;
char* tem2= new char[20];
cin>> tem2;
strcat(::inputData,tem2);
tab1[i]=*tem2;
cout<<::inputData;
len= len+ strlen(tem2);
cout<<len;
// if(len>strlen(::inputData)){
// ::inputData= new char[(strlen(::inputData)*2)];
// }
}
}