-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample.c
47 lines (42 loc) · 907 Bytes
/
example.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
/*
implement the "input" function, which can get one line from system's standard input stream
*/
struct CharNode
{
char c;
struct CharNode* next;
};
char* input()
{
char inputChar = getchar();
int count = 0;
struct CharNode* node = (struct CharNode*)malloc(sizeof(struct CharNode));
struct CharNode* head = node;
while (inputChar != '\n')
{
node->c = inputChar;
node->next = (struct CharNode*)malloc(sizeof(struct CharNode));
node = node->next;
count++;
inputChar = getchar();
}
node->next = NULL;
//convert linked list into String(char array)
char* inputString = (char*)malloc(sizeof(char) * (count+1));
node = head;
for (int i = 0; i < count; i++)
{
inputString[i] = node->c;
node = node->next;
}
inputString[count] = '\0';
return inputString;
}
int main()
{
char* inputString = input();
printf("%s", inputString);
return 0;
}