Skip to content

Commit 0924a49

Browse files
committed
added fgets, puts, strdup and getline implementations
1 parent 23ee5e3 commit 0924a49

4 files changed

Lines changed: 71 additions & 18 deletions

File tree

main.cpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,8 @@
33

44
int main()
55
{
6+
char tested_string[50] = "abcdefg";
67

7-
char tested_string1[50];
8-
char tested_string2[50];
9-
//char* ptr = NULL;
10-
scanf( "%s", tested_string1 );
11-
//ptr = string_utils_strchr(tested_string, 'x' );
12-
string_utils_strcpy( tested_string2, tested_string1 );
13-
14-
printf( "next step\n" );
15-
printf( "\n\n" );
16-
//assert( ptr != NULL );
17-
printf( "%s", tested_string2 );
188

199

2010
return 0;

standart_string_functions.depend

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# depslib dependency file v1.0
2-
1630237710 source:/home/shob/Dev/ILAB 2020-2021/standart_string_functions/string-utils.cpp
2+
1630255392 source:/home/shob/Dev/ILAB 2020-2021/standart_string_functions/string-utils.cpp
33
"string-utils.h"
44

5-
1630237704 /home/shob/Dev/ILAB 2020-2021/standart_string_functions/string-utils.h
5+
1630255448 /home/shob/Dev/ILAB 2020-2021/standart_string_functions/string-utils.h
66
<stdlib.h>
77
<stdio.h>
88
<assert.h>
99
<math.h>
1010

11-
1630233845 source:/home/shob/Dev/ILAB 2020-2021/standart_string_functions/main.cpp
11+
1630254375 source:/home/shob/Dev/ILAB 2020-2021/standart_string_functions/main.cpp
1212
"string-utils.h"
1313

string-utils.cpp

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,71 @@ static int plain_copy( char* destptr, char* srcptr, int startfrom, int endwhen )
111111

112112
char* 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

string-utils.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ char* string_utils_strcpy( char * destptr, char * srcptr );
1313
char* string_utils_strncpy( char* destptr, char * srcptr, int num );
1414
char* string_utils_strcat( char * destptr, char * srcptr );
1515
char* string_utils_fgets( char* input_string, int num, FILE* filestream );
16-
/*
17-
string_utils_strdup
18-
string_utils_getline
19-
*/
16+
int string_utils_puts( char* input_string );
17+
char* string_utils_strdup( char* input_string );
18+
int string_utils_getline( char* output_string, int string_size, char symbol );
2019

2120
static int plain_copy( char* destptr, char* srcptr, int startfrom, int endwhen );
2221

0 commit comments

Comments
 (0)