c ++ - cin word to char数组,每个输入单词显示所有单词。

时间:2016-11-03 12:29:27

标签: c++ arrays char

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;
}

3 个答案:

答案 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)];
//        }
}
}