在口袋中有红,黄,蓝,白,黑五种球很多个,每次从口袋中拿出不同颜色的三个,可以有几种可能取法,并且打印出每种组合的三种颜色,你可以帮我一下吗?
#include<iostream>
using namespace std;
void main()
{
int i,j,k;
char *a[5]={"red","yellow","blue","white","black"};
//我的问题关键是这里,为什么一定要是指针形式呢?这样char a[5]={"red","yellow","blue","white","black"};为什么就
//会出错???希望大家告诉我下原因,再告诉下我这是哪个方面的知识,我百度-字符串 初始化 指针都没找到这些例子
//目前学了谭浩强的c语言,在学郑莉的c++
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
for(k=j+1;k<5;k++)
{
if(i!=j&&i!=k&&j!=k)
cout<<a[i]<<'\t'<<a[j]<<'\t'<<a[k]<<endl;
}
}
11 个解决方案
#1
因为"red"相当于一个char指针而不是单个char
#2
那如果不想用指针应该这么搞??
#3
char *a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
这里就是字符指针的问题,好好看看字符那章,还有指针.
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
这里就是字符指针的问题,好好看看字符那章,还有指针.
#4
顶
#5
谢谢了,我好好看看
#6
不想用指针可以用string
string a[5] = {"red","yellow","blue","white","black"};
也可以用2维数组
char a[5][128] = {"red","yellow","blue","white","black"};
不过这时,你得颜色单词长度必须在一个范围内
#7
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
#8
关键:
如果用char a[5],那数组a中每个元素都是char型(而不char*型),单个字符。那你想这样还能行吗:
char a[5]={"red","yellow","blue","white","black"};
这里每个元素是单个字符吗?
如果用char* a[5],那数组a中每个元素是一个char*型指针变量,指针可以指向一个字符串呀。比如 char* p="abcd"。当然这样不安全,最好用const char* p="abcd"。
如果用char a[5],那数组a中每个元素都是char型(而不char*型),单个字符。那你想这样还能行吗:
char a[5]={"red","yellow","blue","white","black"};
这里每个元素是单个字符吗?
如果用char* a[5],那数组a中每个元素是一个char*型指针变量,指针可以指向一个字符串呀。比如 char* p="abcd"。当然这样不安全,最好用const char* p="abcd"。
#9
char *a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
-------------
如果不用字符指针,就用string来解决:
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
-------------
如果不用字符指针,就用string来解决:
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
#10
请问这样的数组该怎样初始化?比如:
const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想让这个数组的值为"0"到"200",该怎样赋值?
const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想让这个数组的值为"0"到"200",该怎样赋值?
#11
如何给这样的数组赋值呢?
比如const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想要把此数组的值变为"0"到”"200"该怎样赋值?
#1
因为"red"相当于一个char指针而不是单个char
#2
那如果不想用指针应该这么搞??
#3
char *a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
这里就是字符指针的问题,好好看看字符那章,还有指针.
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
这里就是字符指针的问题,好好看看字符那章,还有指针.
#4
顶
#5
谢谢了,我好好看看
#6
不想用指针可以用string
string a[5] = {"red","yellow","blue","white","black"};
也可以用2维数组
char a[5][128] = {"red","yellow","blue","white","black"};
不过这时,你得颜色单词长度必须在一个范围内
#7
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
#8
关键:
如果用char a[5],那数组a中每个元素都是char型(而不char*型),单个字符。那你想这样还能行吗:
char a[5]={"red","yellow","blue","white","black"};
这里每个元素是单个字符吗?
如果用char* a[5],那数组a中每个元素是一个char*型指针变量,指针可以指向一个字符串呀。比如 char* p="abcd"。当然这样不安全,最好用const char* p="abcd"。
如果用char a[5],那数组a中每个元素都是char型(而不char*型),单个字符。那你想这样还能行吗:
char a[5]={"red","yellow","blue","white","black"};
这里每个元素是单个字符吗?
如果用char* a[5],那数组a中每个元素是一个char*型指针变量,指针可以指向一个字符串呀。比如 char* p="abcd"。当然这样不安全,最好用const char* p="abcd"。
#9
char *a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
-------------
如果不用字符指针,就用string来解决:
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
字符串是字符的集合,用字符串指针标识.
char *p.//这里是字符串的集合,也可以是空串,一字符'\0'标识结束.用""表示.
char p.//这里就是单个字符.用''表示.
-------------
如果不用字符指针,就用string来解决:
#include <string>
//......
std::string a[5]={"red","yellow","blue","white","black"};
#10
请问这样的数组该怎样初始化?比如:
const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想让这个数组的值为"0"到"200",该怎样赋值?
const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想让这个数组的值为"0"到"200",该怎样赋值?
#11
如何给这样的数组赋值呢?
比如const char *labels[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",
"24"};
我想要把此数组的值变为"0"到”"200"该怎样赋值?