C语言
动态定义二维字符串数组:
char **arr = (char **)malloc(pow(2,n)*sizeof(char*)); //申请一组一维指针空间
for( i = 0; i < pow(2, n); i++ ) //对于每一个一维指针空间,申请一行n个数据空间
{
arr[i] = (char *)malloc(n*sizeof(char));
}
函数返回二维字符串数组:
char **graCode(int n)
{
int i;
char **arr = (char **)malloc(pow(2,n)*sizeof(char*)); //申请一组一维指针空间
for( i = 0; i < pow(2, n); i++ ) //对于每一个一维指针空间,申请一行n个数据空间
{
arr[i] = (char *)malloc(n*sizeof(char));
}
if( n == 1 )
{
arr[0][0] = '0';
arr[1][0] = '1';
return arr;
}
}
//最后要释放malloc
字符串连接函数strncat:
**
库函数strncat()函数也可用于连接字符串,但是该函数要求指明在原字符串末尾附加的目标字符串长度。strncat()函数的原型是:
char * strncat(char *str1,const char str2,size_t_n);
如果str2的字符数大于n,那么该函数只将str2的前n个字符附加在str1末尾,如果str2中的字符数小于n,该字符会将str2的所有字符附加在str1末尾。无论哪种情况,都会在新字符串的末尾添加空字符。必须为str1分配足够的空间以存储新的字符串。strncat()函数返回指向str1的指针。
C++
动态定义字符串数组:
string* arr = new string[pow(2, n)]; //动态定义字符串数组
函数返回字符串数组:
string* graCode(int n)
{
string* arr = new string[pow(2, n)]; //动态定义字符串数组
if (n == 1) //递归出口
{
arr[0] = "0 ";
arr[1] = "1 ";
return arr; //返回字符串首地址
}
如何使用函数返回的字符串数组(类似下面这样):
for (int i = 0; i < pow(2, n); i++)
{
cout<<*(graCode(n)+i); //输出每个字符串
}
字符串自带插入函数:
arr[i].insert(arr[i].begin(), str1);//字符str1插入到第i字符串最前面
C++中字符串可以直接赋值:
arr[i] = pre[i] ; //逐个将数组pre中字符串赋值给数组arr的前2^(n-1)个位置 ,
有任何其他补充内容希望小伙伴在下方留言