-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstr_modifiers1.c
130 lines (107 loc) · 2.27 KB
/
str_modifiers1.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "shell.h"
char *_itoa(int num);
int _strlen(const char *s);
char *_strcpy(char *dest, const char *src);
char *_strcat(char *dest, const char *src);
char *_strncat(char *dest, const char *src, size_t n);
/**
* _itoa - Converts an integer to a string.
* @num: The integer.
*
* Return: The converted string.
*/
char *_itoa(int num)
{
char *buffer;
int len = num_len(num);
unsigned int num1;
buffer = malloc(sizeof(char) * (len + 1));
if (!buffer)
return (NULL);
buffer[len] = '\0';
if (num < 0)
{
num1 = num * -1;
buffer[0] = '-';
}
else
{
num1 = num;
}
len--;
do {
buffer[len] = (num1 % 10) + '0';
num1 /= 10;
len--;
} while (num1 > 0);
return (buffer);
}
/**
* _strlen - Returns the length of a string.
* @s: A pointer to the characters string.
*
* Return: The length of the character string.
*/
int _strlen(const char *s)
{
int length = 0;
if (!s)
return (length);
for (length = 0; s[length]; length++)
;
return (length);
}
/**
* _strcpy - Copies the string pointed to by src, including the
* terminating null byte, to the buffer pointed by des.
* @dest: Pointer to the destination of copied string.
* @src: Pointer to the src of the source string.
*
* Return: Pointer to dest.
*/
char *_strcpy(char *dest, const char *src)
{
size_t i;
for (i = 0; src[i] != '\0'; i++)
dest[i] = src[i];
dest[i] = '\0';
return (dest);
}
/**
* _strcat - Concantenates two strings.
* @dest: Pointer to destination string.
* @src: Pointer to source string.
*
* Return: Pointer to destination string.
*/
char *_strcat(char *dest, const char *src)
{
char *destTemp;
const char *srcTemp;
destTemp = dest;
srcTemp = src;
while (*destTemp != '\0')
destTemp++;
while (*srcTemp != '\0')
*destTemp++ = *srcTemp++;
*destTemp = '\0';
return (dest);
}
/**
* _strncat - Concantenates two strings where n number
* of bytes are copied from source.
* @dest: Pointer to destination string.
* @src: Pointer to source string.
* @n: n bytes to copy from src.
*
* Return: Pointer to destination string.
*/
char *_strncat(char *dest, const char *src, size_t n)
{
size_t dest_len = _strlen(dest);
size_t i;
for (i = 0; i < n && src[i] != '\0'; i++)
dest[dest_len + i] = src[i];
dest[dest_len + i] = '\0';
return (dest);
}