aboutsummaryrefslogtreecommitdiff
path: root/simple-C-programs/DynamicString.c
diff options
context:
space:
mode:
authorHyder Hadi <hyder@hyderhadi.xyz>2026-05-04 18:18:45 +0300
committerHyder Hadi <hyder@hyderhadi.xyz>2026-05-04 18:18:45 +0300
commit390e72011a130eece804499b3f64fc0f4f29da94 (patch)
tree079ba242a3c028d8179692e97b427118e1ccaff5 /simple-C-programs/DynamicString.c
parent781eb09f68f88b1c0de1954afafa2d81a61f653c (diff)
Finished writing the loop and the Echo function is ready :D
Diffstat (limited to 'simple-C-programs/DynamicString.c')
-rw-r--r--simple-C-programs/DynamicString.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/simple-C-programs/DynamicString.c b/simple-C-programs/DynamicString.c
index 9141dba..c2dd729 100644
--- a/simple-C-programs/DynamicString.c
+++ b/simple-C-programs/DynamicString.c
@@ -14,12 +14,29 @@ int main() {
Dynamic_string = malloc(string_length);
int input;
+ int ch_count = 0;
while((input = getchar()) != '\n' && input != EOF) {
-
- }
+ Dynamic_string[ch_count] = input;
+ ch_count++;
+
+ if(ch_count > (string_length - 5)) {
+ string_length *= 2;
+ char *tmp = realloc(Dynamic_string, string_length);
+ if(!tmp) {
+ printf("Allocation failed!\n");
+ free(Dynamic_string);
+ return 0;
+ }
+ Dynamic_string = tmp;
+
+ }
+ }
+ Dynamic_string[ch_count] = '\0';
+ printf("%s\n", Dynamic_string);
+ free(Dynamic_string);
return 0;
} \ No newline at end of file