В этой статье блога мы рассмотрим различные методы преобразования строки в двумерную строку на языке программирования C. Мы предоставим примеры кода для каждого метода, что позволит вам понять реализации и выбрать тот, который лучше всего соответствует вашим потребностям. Давайте погрузимся!
Метод 1: использование динамического распределения памяти
Пример кода:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void convertTo2D(char* str, int rows, int columns) {
char twoDString = (char)malloc(rows * sizeof(char*));
for (int i = 0; i < rows; i++) {
twoDString[i] = (char*)malloc(columns * sizeof(char));
strncpy(twoDString[i], str + (i * columns), columns);
}
for (int i = 0; i < rows; i++) {
printf("%s\n", twoDString[i]);
}
// Free memory
for (int i = 0; i < rows; i++) {
free(twoDString[i]);
}
free(twoDString);
}
int main() {
char str[] = "HelloWorld";
int rows = 2;
int columns = 5;
convertTo2D(str, rows, columns);
return 0;
}
Метод 2: использование статического двумерного массива
Пример кода:
#include <stdio.h>
#include <string.h>
void convertTo2D(char* str, int rows, int columns) {
char twoDString[rows][columns];
for (int i = 0; i < rows; i++) {
strncpy(twoDString[i], str + (i * columns), columns);
}
for (int i = 0; i < rows; i++) {
printf("%s\n", twoDString[i]);
}
}
int main() {
char str[] = "HelloWorld";
int rows = 2;
int columns = 5;
convertTo2D(str, rows, columns);
return 0;
}
Метод 3: использование одномерного массива указателей
Пример кода:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void convertTo2D(char* str, int rows, int columns) {
char* twoDString[rows];
for (int i = 0; i < rows; i++) {
twoDString[i] = (char*)malloc(columns * sizeof(char));
strncpy(twoDString[i], str + (i * columns), columns);
}
for (int i = 0; i < rows; i++) {
printf("%s\n", twoDString[i]);
free(twoDString[i]);
}
}
int main() {
char str[] = "HelloWorld";
int rows = 2;
int columns = 5;
convertTo2D(str, rows, columns);
return 0;
}
В этой статье мы рассмотрели три различных метода преобразования строки в двумерную строку на языке программирования C. В первом методе использовалось динамическое распределение памяти, во втором — статический двумерный массив, а в третьем — одномерный массив указателей. Каждый метод имеет свои преимущества и может быть выбран исходя из ваших конкретных требований. Поняв и реализовав эти методы, вы сможете эффективно преобразовывать строки в 2D-строки в своих программах на языке C.