lab3
This commit is contained in:
128
Assignments/lab3_CalebFontenot/twoDarraysChar.cpp
Normal file
128
Assignments/lab3_CalebFontenot/twoDarraysChar.cpp
Normal file
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// Created by caleb on 3/20/24.
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
|
||||
char** create2DarrayChar(int rows, int columns) {
|
||||
char **pp = new char* [rows];
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
pp[i] = new char[columns + 1];
|
||||
}
|
||||
return pp;
|
||||
}
|
||||
|
||||
|
||||
void populateChar(char** pp, int rows, int columns) {
|
||||
int ascii = 'A';
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
int j = 0;
|
||||
for (j = 0; j < columns -1; ++j) {
|
||||
pp[i][j] = ascii + i + j;
|
||||
}
|
||||
pp[i][j] = '\0';
|
||||
ascii += 10;
|
||||
if (ascii > 100) {
|
||||
ascii = 65;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void populateCharReverse(char** pp, int rows, int columns) {
|
||||
int ascii = 'A';
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
//for (int i = rows - 1; i >= 0; --i) {
|
||||
int j = columns;
|
||||
for (int j = 0; j < columns; ++j) {
|
||||
//for (j = columns - 1; j >= 0; --j) {
|
||||
pp[i][j] = ascii - i - j;
|
||||
}
|
||||
pp[i][j] = '\0';
|
||||
ascii += 10;
|
||||
if (ascii > 100) {
|
||||
ascii = 65;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
/* traverses */
|
||||
void traverseChar(char** pp, int rows, int columns) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
for (int j = 0; j < columns; ++j) {
|
||||
std::cout << pp[i][j] << " ";
|
||||
}
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
void traverseCharSingleLoop (char** pp, int rows) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
std::cout << pp[i] << std::endl;
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/* frees */
|
||||
void freeMemoryChar(char **pp, int rows) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
delete[] pp[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/* Dereference versions */
|
||||
|
||||
char** create2DarrayCharDereference(int rows, int columns) {
|
||||
char **pp = new char* [rows];
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
*(pp + i) = new char[columns + 1];
|
||||
}
|
||||
return pp;
|
||||
}
|
||||
|
||||
void populateCharDereference(char** pp, int rows, int columns) {
|
||||
int ascii = 'A';
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
int j = 0;
|
||||
for (j = 0; j < columns -1; ++j) {
|
||||
*(*(pp + i) + j) = ascii + i + j;
|
||||
}
|
||||
pp[i][j] = '\0';
|
||||
ascii += 10;
|
||||
if (ascii > 100) {
|
||||
ascii = 65;
|
||||
}
|
||||
}
|
||||
}
|
||||
void traverseCharDereference(char** pp, int rows, int columns) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
for (int j = 0; j < columns; ++j) {
|
||||
std::cout << *(*(pp + i) + j) << " ";
|
||||
}
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
void traverseCharSingleLoopDereference(char** pp, int rows) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
std::cout << *(pp + i) << std::endl;
|
||||
}
|
||||
}
|
||||
void freeMemoryCharDereference(char **pp, int rows) {
|
||||
for (int i = 0; i < rows; ++i) {
|
||||
delete[] *(pp + i);
|
||||
}
|
||||
}
|
||||
|
||||
void sort(char **pp, int columns, int rows) {
|
||||
char temp;
|
||||
for (int i = 0; i < columns; ++i) {
|
||||
for (int j = 0; j < (rows - 1); ++j) {
|
||||
if (pp[i][j] > pp[i][j + 1]) {
|
||||
temp = pp[i][j];
|
||||
pp[i][j] = pp[i][j + 1];
|
||||
pp[i][j + 1] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user