Nothing to see here
This commit is contained in:
122
strs2.c
Normal file
122
strs2.c
Normal file
@@ -0,0 +1,122 @@
|
||||
#include "main.h"
|
||||
/**
|
||||
* _strlen - Returns the lenght of a string.
|
||||
* @s: Type char pointer
|
||||
* Return: c.
|
||||
*/
|
||||
int _strlen(char *s)
|
||||
{
|
||||
int c;
|
||||
|
||||
for (c = 0; s[c] != 0; c++)
|
||||
;
|
||||
return (c);
|
||||
|
||||
}
|
||||
/**
|
||||
* _strlenc - Strlen function but applied for constant char pointer s
|
||||
* @s: Type char pointer
|
||||
* Return: c
|
||||
*/
|
||||
int _strlenc(const char *s)
|
||||
{
|
||||
int c;
|
||||
|
||||
for (c = 0; s[c] != 0; c++)
|
||||
;
|
||||
return (c);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_string - print a string.
|
||||
* @val: argumen t.
|
||||
* Return: the length of the string.
|
||||
*/
|
||||
|
||||
int printf_string(va_list val)
|
||||
{
|
||||
char *s;
|
||||
int i, len;
|
||||
|
||||
s = va_arg(val, char *);
|
||||
if (s == NULL)
|
||||
{
|
||||
s = "(null)";
|
||||
len = _strlen(s);
|
||||
for (i = 0; i < len; i++)
|
||||
_putchar(s[i]);
|
||||
return (len);
|
||||
}
|
||||
else
|
||||
{
|
||||
len = _strlen(s);
|
||||
for (i = 0; i < len; i++)
|
||||
_putchar(s[i]);
|
||||
return (len);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_unsigned - prints integer
|
||||
* @args: argument to print
|
||||
* Return: number of characters printed
|
||||
*/
|
||||
int printf_unsigned(va_list args)
|
||||
{
|
||||
unsigned int n = va_arg(args, unsigned int);
|
||||
int num, last = n % 10, digit, exp = 1;
|
||||
int i = 1;
|
||||
|
||||
n = n / 10;
|
||||
num = n;
|
||||
|
||||
if (last < 0)
|
||||
{
|
||||
_putchar('-');
|
||||
num = -num;
|
||||
n = -n;
|
||||
last = -last;
|
||||
i++;
|
||||
}
|
||||
if (num > 0)
|
||||
{
|
||||
while (num / 10 != 0)
|
||||
{
|
||||
exp = exp * 10;
|
||||
num = num / 10;
|
||||
}
|
||||
num = n;
|
||||
while (exp > 0)
|
||||
{
|
||||
digit = num / exp;
|
||||
_putchar(digit + '0');
|
||||
num = num - (digit * exp);
|
||||
exp = exp / 10;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
_putchar(last + '0');
|
||||
|
||||
return (i);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_srev - function that prints a str in reverse
|
||||
* @args: type struct va_arg where is allocated printf arguments
|
||||
* Return: the string
|
||||
*/
|
||||
int printf_srev(va_list args)
|
||||
{
|
||||
|
||||
char *s = va_arg(args, char*);
|
||||
int i;
|
||||
int j = 0;
|
||||
|
||||
if (s == NULL)
|
||||
s = "(null)";
|
||||
while (s[j] != '\0')
|
||||
j++;
|
||||
for (i = j - 1; i >= 0; i--)
|
||||
_putchar(s[i]);
|
||||
return (j);
|
||||
}
|
||||
Reference in New Issue
Block a user