C++字符串数组问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:16:17
我想得到的结果是:
输入一个单词,依次获得并显示该单词的每一个字母,最后显示单词的字母数。

我写了下面的代码,但是不行。我很菜,望高手指点!希望多讲点字符串和数组部分的知识!

#include "iostream.h"
#include "string.h"
int main(){
int i,j;
char *a=new char;
cout<<"输入一个单词:"<<endl;
cin>>a;
j=strlen(a);
for(i=0;i<j;i++){
cout<<a[i]<<" ";
}
delete []a;
return 0;
}
谢谢各位高手,下面有位朋友写出了代码,可是我最想要的是获取输入单词的字母数,就是说要得到输入的那个单词有多少个字母组成。能不能补充一下?谢谢了!

#include <iostream>
#include <string>
using namespace std;
void main ()
{
char * p=new char[50];//char[20]是开辟20* 个char 空间。//你的就错在这,其他的都对了。
cin >> p;//输入单词。
cout << endl;
int count;
for (count=0;*(p+count)!='\0';count++)//字符串以'\0'结束。
{
cout << *(p+count) << " " ;
}
cout << "位数:" <<count <<endl;
delete []p;
}

char *a=new char[512];

char *a=new char;
这一句有问题 你只是开辟了一个char型内存空间,这是不够存储字符串的。
可以直接char a[100];定义一个长度为100的字符串数组,注意char a[N]只能存N-1个字符,因为最后要有一个字符为'\0'表示结束