main.h
#ifndef MAIN_H
#define MAIN_H
#include <stdlib.h>
int _putchar(char c);
void reset_to_98(int *n);
void swap_int(int *a, int *b);
size_t _strlen(const char *str);
void _puts(char *str);
void print_rev(char *s);
void rev_string(char *s);
void puts2(char *str);
void puts_half(char *str);
char *_strcpy(char *dest, char *src);
#endif
0-reset_to_98.c
#include "main.h"
/**
* reset_to_98 - resets value of pointer to 98
* @n: pointer to reset to 98
*
* Return: void
*/
void reset_to_98(int *n)
{
*n = 98;
}
1-swap.c
#include "main.h"
/**
* swap_int - swaps the value of int a and int b
* @a: first int to swap
* @b: second int to swap
*
* Return: void
*/
void swap_int(int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
}
2-strlen.c
#include "main.h"
/**
* _strlen - Returns the length of a string.
* @str: string.
*
* Return: Length.
*/
size_t _strlen(const char *str)
{
size_t len = 0;
while (*str++)
len++;
return (len);
}
3-puts.c
#include "main.h"
/**
* _puts - Prints a string.
* @str: string.
*/
void _puts(char *str)
{
while (*str)
_putchar(*str++);
_putchar('\n');
}
4-print_rev.c
#include "main.h"
/**
* print_rev - Prints a string in reverse.
* @s: string to tbe reserved.
*/
void print_rev(char *s)
{
int len = 0, i = 0;
while (s[i++])
len++;
for (i = len - 1; i >= 0; i--)
_putchar(s[i]);
_putchar('\n');
}
5-rev_string.c
#include "main.h"
/**
* rev_string - Reverses a string.
* @s: string to be reserved.
*/
void rev_string(char *s)
{
int i = 0, len = 0;
char tmp;
while (s[i++])
len++;
for (i = len - 1; i >= len / 2; i--)
{
tmp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = tmp;
}
}
6-puts2.c
#include "main.h"
/**
* puts2 - Prints one char out of two of a string.
* @str: The string containing characters.
*/
void puts2(char *str)
{
int i = 0, len = 0;
while (str[i++])
len++;
for (i = 0; i < len; i += 2)
_putchar(str[i]);
_putchar('\n');
}
7-puts_half.c
#include "main.h"
/**
* puts_half - half of a string.
* @str: string to be printed.
*/
void puts_half(char *str)
{
int i = 0, len = 0, j;
while (str[i++])
len++;
if ((len % 2) == 0)
j = len / 2;
else
j = (len + 1) / 2;
for (i = j; i < len; i++)
_putchar(str[i]);
_putchar('\n');
}
8-print_array.c
#include "main.h"
#include <stdio.h>
/**
* print_array - Prints an inputted number of elements
* of an array of integers.
* @a: The array of integers.
* @n: The number of elements to be printed.
*/
void print_array(int *a, int n)
{
int index;
for (index = 0; index < n; index++)
{
printf("%d", a[index]);
if (index == n - 1)
continue;
printf(", ");
}
printf("\n");
}
9-strcpy.c
#include "main.h"
/**
* _strcpy - Copies a string pointed to by @src, including the
* terminating null byte, to a buffer pointed to by @dest.
* @dest: A buffer to copy the string to.
* @src: A source string to cpoy.
*
* Return: A pointer to the destination string @dest.
*/
char *_strcpy(char *dest, char *src)
{
int index = 0;
for (index = 0; src[index] != '\0'; index++)
{
dest[index] = src[index];
}
dest[index] = '\0';
return (dest);
}
100-atoi.c
#include "main.h"
/**
* _atoi - Converts a string to an integer.
* @s: The string to be converted.
*
* Return: The integer value of the converted string.
*/
int _atoi(char *s)
{
int sign = 1;
unsigned int num = 0;
do {
if (*s == '-')
sign *= -1;
else if (*s >= '0' && *s <= '9')
num = (num * 10) + (*s - '0');
else if (num > 0)
break;
} while (*s++);
return (num * sign);
}
101-keygen.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/**
* main - Generates random valid passwords for the
* program 101-crackme.
*
* Return: Always 0.
*/
int main(void)
{
char password[84];
int index = 0, sum = 0, diff_half1, diff_half2;
srand(time(0));
while (sum < 2772)
{
password[index] = 33 + rand() % 94;
sum += password[index++];
}
password[index] = '\0';
if (sum != 2772)
{
diff_half1 = (sum - 2772) / 2;
diff_half2 = (sum - 2772) / 2;
if ((sum - 2772) % 2 != 0)
diff_half1++;
for (index = 0; password[index]; index++)
{
if (password[index] >= (33 + diff_half1))
{
password[index] -= diff_half1;
break;
}
}
for (index = 0; password[index]; index++)
{
if (password[index] >= (33 + diff_half2))
{
password[index] -= diff_half2;
break;
}
}
}
printf("%s", password);
return (0);
}
README.md
Make a readme file with
echo "project description" > README.md