@@ -111,7 +111,71 @@ static int plain_copy( char* destptr, char* srcptr, int startfrom, int endwhen )
111111
112112char * string_utils_fgets ( char * input_string, int num, FILE* filestream )
113113{
114+ assert ( input_string != NULL );
115+ assert ( filestream != NULL );
116+ assert ( std::isfinite ( num ) );
117+
118+
119+ int i = 0 ;
120+ for ( i; i < num; i++ )
121+ {
122+ input_string[i] = getc ( filestream );
123+ }
124+ input_string[i+1 ] = ' \0 ' ;
125+
126+ return input_string;
127+ }
128+
129+
130+
131+ int string_utils_puts ( char * input_string )
132+ {
133+ assert ( input_string != NULL );
134+
135+
136+ for ( int i = 0 ; i < string_utils_strlen ( input_string ); i++ )
137+ {
138+ printf ( " %c" , input_string[i] );
139+ }
140+
141+ printf ( " \n " );
142+ return 0 ;
143+ }
144+
114145
146+
147+ char * string_utils_strdup ( char * input_string )
148+ {
149+ assert ( input_string != NULL );
150+
151+
152+ char * newstring = ( char * ) calloc ( 50 , sizeof ( char ) );
153+
154+ plain_copy ( newstring, input_string, 0 , string_utils_strlen ( input_string ) );
155+
156+ assert ( newstring != NULL );
157+ return newstring;
158+ }
159+
160+
161+
162+ int string_utils_getline ( char * output_string, int string_size, char symbol )
163+ {
164+ assert ( output_string != NULL );
165+ assert ( std::isfinite ( string_size ) );
166+ assert ( std::isfinite ( symbol ) );
167+
168+
169+ char input = ' 0' ;
170+ int i = 0 ;
171+
172+ while ( input != symbol )
173+ {
174+ input = getchar ();
175+ output_string[i] = input;
176+ i++;
177+ }
178+ return 1 ;
115179}
116180
117181
0 commit comments