Convert String List to Char List in c and c++ 21

preview_player
Показать описание
Shows how to #convert a #string #list #data #structure into a #char list and vice versa. Shows how to read an input file using string list and write into an output file using char #list in c plus plus and c.

c code:

#include<stdio.h>
struct List
{
char *data;
struct List *next;
};
typedef struct List list;

int main()
{

list *iter, *elements, *node;
elements = iter = node = NULL;

char line[25];

for (;fgets(line, sizeof(line), input_file)!= NULL;)
{
//iter = malloc(sizeof(list));
//iter->data = strdup(line);//
//iter->next = NULL;
//if (elements == NULL)
//{
// node = elements = iter;
//}
//else
//{
// node = node->next = iter;
//}

for (size_t i = 0; i < strlen(line); i++)//stops where line finishes
{
iter = malloc(sizeof(list));
iter->data = malloc(sizeof(char)); //added to use pointers
*iter->data = line[i]; //use of pointer here
iter->data[1] = '\0';//convert char to string
iter->next = NULL;
if (elements == NULL)
{
node = elements = iter;
}
else
{
node = node->next = iter;
}
}
}

for (iter = elements; iter; iter = iter->next)
{
printf("%s\n", iter->data); //for string output
fprintf(output_file, "%s\n", iter->data);//for string output
//printf("%c\n", *iter->data); //
//fprintf(output_file, "%c\n", *iter->data);//for string output
}

free(iter);

if (input_file)
{
fclose(input_file);
fclose(output_file);
}
getch();
return 0;
}

c++ code:

#include <iostream> //for cout
#include <fstream> // for ofstream/ifstream
#include <string> //for << and getline
#include<list> //for lists

struct List
{
std::string data;
List *next;
};
typedef struct List list;

int main()
{

//list *iter, *elements, *node;
//elements = iter = node = NULL;

std::list<std::string> elements;
//std::list<char> elements;

std::string line;

for (; std::getline(input_file, line);)
{
//iter = new List;;
//iter->data = line;
//iter->next = NULL;

//if (elements == NULL)
//{
// node = elements = iter;
//}
//else
//{
// node = node->next = iter;
//}

{
//iter = new List;;
////iter->data = line[i];//char
//iter->data = std::string(1, line[i]);//convert char to string
//iter->next = NULL;
//if (elements == NULL)
//{
// node = elements = iter;
//}
//else
//{
// node = node->next = iter;
//}

}
}

//for (iter = elements; iter != NULL; iter = iter->next)
//{
// std::cout << iter->data << std::endl;
// output_file << iter->data << std::endl;
//}

{
std::cout << (*iter) << std::endl;
output_file << (*iter) << std::endl;
}

//delete iter;

if (input_file)
{
}
return 0;
}

#cplusplus #c #tutorial
Рекомендации по теме
visit shbcf.ru