Definición de matriz de cadenas dinámica, c ++, c

El lenguaje C
define dinámicamente una matriz de cadenas bidimensional:

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

La función devuelve una matriz de cadenas bidimensional:

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

Función de concatenación de cadenas strncat:

** La
función de biblioteca strncat () también se puede usar para concatenar cadenas, pero esta función requiere especificar la longitud de la cadena de destino agregada al final de la cadena original. El prototipo de la función strncat () es:
char * strncat (char * str1, const char str2, size_t_n);
si el número de caracteres en str2 es mayor que n, entonces esta función solo agrega los primeros n caracteres de str2 al end of str1, if str2 El número de caracteres en es menor que n, lo que agregará todos los caracteres en str2 al final de str1. En cualquier caso, se agrega un carácter nulo al final de la nueva cadena. Se debe asignar suficiente espacio para que str1 almacene la nueva cadena. La función strncat () devuelve un puntero a str1.

C ++
define dinámicamente una matriz de cadenas:

string* arr = new string[pow(2, n)];	//动态定义字符串数组

La función devuelve una matriz de cadenas:

string* graCode(int n)
{
    
    
	string* arr = new string[pow(2, n)];	//动态定义字符串数组

	if (n == 1)	//递归出口
	{
    
    
		arr[0] = "0 ";
		arr[1] = "1 ";
		return arr;	//返回字符串首地址
	}

Cómo usar la matriz de cadenas devuelta por la función (similar a la siguiente):

for (int i = 0; i < pow(2, n); i++)
	{
    
    
		cout<<*(graCode(n)+i);	//输出每个字符串
	}

La cadena tiene su propia función de inserción:

arr[i].insert(arr[i].begin(), str1);//字符str1插入到第i字符串最前面

Las cadenas en C ++ se pueden asignar directamente:

arr[i] = pre[i] ;	//逐个将数组pre中字符串赋值给数组arr的前2^(n-1)个位置 ,

Hay cualquier otro contenido complementario, espero que pueda dejar un mensaje a continuación.

Supongo que te gusta

Origin blog.csdn.net/angelsweet/article/details/111603559
Recomendado
Clasificación