1. You are given a C file which contains a partially completed program. Follow the instructions contained in comments and complete the required functions. You will be rewriting four functions from HW03 (initializeStrings, printStrings, encryptStrings, decryptStrings) using only pointer operations instead of using array operations. In addition to this, you will be writing two new functions (printReversedString, isValidPassword). You should not be using any array operations in any of functions for this assignment. You may use only the strlen() function from string.h library. You can find out more about these functions by reading through the instructions in the hw04q1.c file. Example output is given below.
#include <stdio.h>
#include <string.h>
#pragma warning(disable : 4996) // compiler directive for Visual Studio only
// Read before you start:
// You are given a partially complete program. Your job is to complete the functions in order for this program to work successfully.
// All instructions are given above the required functions, please read them and follow them carefully.
// You shoud not modify the function return types or parameters.
// You can assume that all inputs are valid. Ex: If prompted for an integer, the user will input an integer.
// You can use only the strlen() of strings.h library to check ctring length. Do not use any other string functions
// because you are supposed to use pointers for this homework.
// DO NOT use arrays to store or to index the characters in the string
// Global Macro Values. They are used to define the size of 2D array of characters
#define NUM_STRINGS 4
#define STRING_LENGTH 35
// Forward Declarations
void initializeStrings(char[NUM_STRINGS][STRING_LENGTH]);
void printStrings(char[NUM_STRINGS][STRING_LENGTH]);
void encryptStrings(char[NUM_STRINGS][STRING_LENGTH], int);
void decryptStrings(char[NUM_STRINGS][STRING_LENGTH], int);
void printReversedString(char s[STRING_LENGTH]);
int isValidPassword(char s[STRING_LENGTH]);
// Problem 1: initializeStrings (5 points)
// Use pointer p to traverse the 2D array of characters variable 'strings' (input from user in main() ) and set all characters in each
// array to a null terminator so that there is a 4 row and 35 column 2D array full of null terminators.
// The null terminator is represented by the character value '\0' and is used to denote the end of a string.
void initializeStrings(char strings[NUM_STRINGS][STRING_LENGTH])
{
char *ptr = &strings[0][0];
}
// Problem 2: printStrings (5 points)
// Use pointer p to traverse the 2D character array "strings" and print each of the contained strings.
// See the example outputs provided in the word document. Each string should be printed on a new line.
void printStrings(char strings[NUM_STRINGS][STRING_LENGTH])
{
char *ptr = &strings[0][0];
}
// Problem 3: encryptStrings (5 points)
// Use pointer ptr to traverse the 2D character array 'strings' and encrypt each string in 1 step as follows-
// 1) Shift the characters forward by the integer value of 'key'.
// If the string is "hello" and key = 2, we will shift those characters forward in ASCII by 2 and the result will be "jgnnq".
// Once the value of 'key' gets larger, you will extend past alphabetical characters and reach non-alphabetical characters. Thats ok.
// NOTE: DO NOT encrypt the null terminator character. Use the null terminators to find the end string.
void encryptStrings(char strings[NUM_STRINGS][STRING_LENGTH], int key)
{
char *ptr = &strings[0][0];
}
// Problem 4: decryptStrings (5 points)
// HINT: This should be very similiar to the encryption function defined above in Problem 3.
// Use pointer ptr to traverse the 2D character array 'strings' and decrypt each string in 1 step as follows-
// 1)Shift the characters backward by the integer value of 'key'.
// NOTE: DO NOT decrypt the null characters.
void decryptStrings(char strings[NUM_STRINGS][STRING_LENGTH], int key)
{
char *ptr = &strings[0][0];
}
// Problem 5: reverseStrings (15 points)
// Reverse the string s and print it, by using pointers.
// Use pointer p and 'temp' char to swap 1st char with last, then 2nd char with (last-1) and so on..
// Finally print the reversed string at the end of this function
// Hint: You might want to check if your logic works with even as well as odd length string.
void printReversedString(char s[STRING_LENGTH])
{
char temp; // not necessary to use this variable
char *p = &s[0]; // pointer to start of string
}
// Problem 6: isValidPassword (15 points)
// Return 1 if the password satisfies the requirements, else return 0.
// Password requirements: atleast 5 characters long, should contain atleast one lower case char, atleast one uppercase char,
// atleast one number and only numbers and letters.
// Valid password examples: Asu123, Cse240, abCd9. Invalid password examples: ASU123, Cidse, Asu1
// Traverse through the string by using pointer p to check if all conditions are satisfied
// Note that the password string contains \n char at the end when you press 'Enter' to enter the password.
int isValidPassword(char s[STRING_LENGTH])
{
char *p = &s[0];
// enter code here
return 0; // remove this line when implementing this function.
// it is added initially , so that the empty function does not give compile error.
}
// You should study and understand how this main() works.
// *** DO NOT modify it in any way ***
int main()
{
char strings[NUM_STRINGS][STRING_LENGTH]; // will store four strings each with a max length of 34
int i, key;
char input[STRING_LENGTH];
printf("CSE240 HW4: Pointers\n\n");
initializeStrings(strings);
for (i = 0; i < NUM_STRINGS; i++)
{
printf("Enter a string: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
input[strlen(input) - 1] = '\0'; // convert trailing '\n' char to '\0' (null terminator)
strcpy(strings[i], input); // copy input to 2D strings array
}
printf("\nEnter a key value for encryption: "); // prompt for integer key
scanf("%d", &key);
encryptStrings(strings, key);
printf("\nEncrypted Strings:\n");
printStrings(strings);
decryptStrings(strings, key);
printf("\nDecrypted Strings:\n");
printStrings(strings);
getchar(); // flush out newline '\n' char
printf("\nEnter a string to reverse: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
printReversedString(input);
getchar(); // flush out newline '\n' char
printf("\nA password should be atleast 5 char long and should contain atleast one lower case char, atleast one uppercase char,");
printf("\natleast one number and only numbers and letters");
printf("\nEnter a password to validate: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
if(isValidPassword(input))
printf("\nPassword is valid");
else
printf("\nPassword is NOT valid ");
getchar(); // keep console open
return 0;
}
output should be
#include <stdio.h>
#include <string.h>
#pragma warning(disable : 4996) // compiler directive for Visual Studio only
// Read before you start:
// You are given a partially complete program. Your job is to complete the functions in order for this program to work successfully.
// All instructions are given above the required functions, please read them and follow them carefully.
// You shoud not modify the function return types or parameters.
// You can assume that all inputs are valid. Ex: If prompted for an integer, the user will input an integer.
// You can use only the strlen() of strings.h library to check ctring length. Do not use any other string functions
// because you are supposed to use pointers for this homework.
// DO NOT use arrays to store or to index the characters in the string
// Global Macro Values. They are used to define the size of 2D array of characters
#define NUM_STRINGS 4
#define STRING_LENGTH 35
// Forward Declarations
void initializeStrings(char[NUM_STRINGS][STRING_LENGTH]);
void printStrings(char[NUM_STRINGS][STRING_LENGTH]);
void encryptStrings(char[NUM_STRINGS][STRING_LENGTH], int);
void decryptStrings(char[NUM_STRINGS][STRING_LENGTH], int);
void printReversedString(char s[STRING_LENGTH]);
int isValidPassword(char s[STRING_LENGTH]);
// Problem 1: initializeStrings (5 points)
// Use pointer p to traverse the 2D array of characters variable 'strings' (input from user in main() ) and set all characters in each
// array to a null terminator so that there is a 4 row and 35 column 2D array full of null terminators.
// The null terminator is represented by the character value '\0' and is used to denote the end of a string.
void initializeStrings(char strings[NUM_STRINGS][STRING_LENGTH])
{
char *ptr = &strings[0][0];
int i;
for (i = 0; i < NUM_STRINGS*NUM_STRINGS; i++)
{
*(ptr + i) = NULL;
}
}
// Problem 2: printStrings (5 points)
// Use pointer p to traverse the 2D character array "strings" and print each of the contained strings.
// See the example outputs provided in the word document. Each string should be printed on a new line.
void printStrings(char strings[NUM_STRINGS][STRING_LENGTH])
{
char *ptr = &strings[0][0];
int i,first=1;
for (i = 0; i < NUM_STRINGS*STRING_LENGTH; i++)
{
/*if (*(ptr + i) == '\0')
{
printf("\n");
continue;
}
else*/
printf("%s\n",(ptr + i));
i += STRING_LENGTH-1;
}
}
// Problem 3: encryptStrings (5 points)
// Use pointer ptr to traverse the 2D character array 'strings' and encrypt each string in 1 step as follows-
// 1) Shift the characters forward by the integer value of 'key'.
// If the string is "hello" and key = 2, we will shift those characters forward in ASCII by 2 and the result will be "jgnnq".
// Once the value of 'key' gets larger, you will extend past alphabetical characters and reach non-alphabetical characters. Thats ok.
// NOTE: DO NOT encrypt the null terminator character. Use the null terminators to find the end string.
void encryptStrings(char strings[NUM_STRINGS][STRING_LENGTH], int key)
{
char *ptr = &strings[0][0];
int i, j;
for (i = 0; i < NUM_STRINGS*STRING_LENGTH; i++)
{
if (*(ptr + i) == '\0')
continue;
*(ptr + i) = *(ptr + i) + key;
}
}
// Problem 4: decryptStrings (5 points)
// HINT: This should be very similiar to the encryption function defined above in Problem 3.
// Use pointer ptr to traverse the 2D character array 'strings' and decrypt each string in 1 step as follows-
// 1)Shift the characters backward by the integer value of 'key'.
// NOTE: DO NOT decrypt the null characters.
void decryptStrings(char strings[NUM_STRINGS][STRING_LENGTH], int key)
{
char *ptr = &strings[0][0];
int i;
for (i = 0; i < NUM_STRINGS*STRING_LENGTH; i++)
{
if (*(ptr + i) == '\0')
continue;
*(ptr + i) = *(ptr + i) - key;
}
}
// Problem 5: reverseStrings (15 points)
// Reverse the string s and print it, by using pointers.
// Use pointer p and 'temp' char to swap 1st char with last, then 2nd char with (last-1) and so on..
// Finally print the reversed string at the end of this function
// Hint: You might want to check if your logic works with even as well as odd length string.
void printReversedString(char s[STRING_LENGTH])
{
char temp; // not necessary to use this variable
char *p = &s[0]; // pointer to start of string
int i;
for (i = strlen(s)-1; i>=0;i--)
{
printf("%c", *(p + i));
}
}
// Problem 6: isValidPassword (15 points)
// Return 1 if the password satisfies the requirements, else return 0.
// Password requirements: atleast 5 characters long, should contain atleast one lower case char, atleast one uppercase char,
// atleast one number and only numbers and letters.
// Valid password examples: Asu123, Cse240, abCd9. Invalid password examples: ASU123, Cidse, Asu1
// Traverse through the string by using pointer p to check if all conditions are satisfied
// Note that the password string contains \n char at the end when you press 'Enter' to enter the password.
int isValidPassword(char s[STRING_LENGTH])
{
char *p = &s[0];
int i,Capital=0,valid =1,digits=0;
// enter code here
if (strlen(s) < 5 )
{
return 0;
}
for (i = 0; i < strlen(s); i++)
{
if ((p[i] >= 65 && p[i] <= 90) || (p[i] >= 97 && p[i] <= 122))
{
if(p[i] >= 65 && p[i] <= 90)
Capital++;
continue;
}
if (p[i] >= 48 && p[i] <= 57)
{
digits++;
continue;
}
}
if (Capital < 1)
return 0;
if (digits < 1)
return 0;
else
return 1;
return 0; // remove this line when implementing this function.
// it is added initially , so that the empty function does not give compile error.
}
// You should study and understand how this main() works.
// *** DO NOT modify it in any way ***
int main()
{
char strings[NUM_STRINGS][STRING_LENGTH]; // will store four strings each with a max length of 34
int i, key;
char input[STRING_LENGTH];
printf("CSE240 HW4: Pointers\n\n");
initializeStrings(strings);
for (i = 0; i < NUM_STRINGS; i++)
{
printf("Enter a string: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
input[strlen(input) - 1] = '\0'; // convert trailing '\n' char to '\0' (null terminator)
strcpy(strings[i], input); // copy input to 2D strings array
}
printf("\nEnter a key value for encryption: "); // prompt for integer key
scanf("%d", &key);
encryptStrings(strings, key);
printf("\nEncrypted Strings:\n");
printStrings(strings);
decryptStrings(strings, key);
printf("\nDecrypted Strings:\n");
printStrings(strings);
getchar(); // flush out newline '\n' char
printf("\nEnter a string to reverse: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
printReversedString(input);
getchar(); // flush out newline '\n' char
printf("\nA password should be atleast 5 char long and should contain atleast one lower case char, atleast one uppercase char,");
printf("\natleast one number and only numbers and letters");
printf("\nEnter a password to validate: "); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
if (isValidPassword(input))
printf("\nPassword is valid");
else
printf("\nPassword is NOT valid ");
getchar(); // keep console open
return 0;
}
/*output
CSE240 HW4: Pointers
Enter a string: CSE 240
Enter a string: Intro to
Enter a string: programming
Enter a string: languages
Enter a key value for encryption: 6
Encrypted Strings:
IYK&8:6
Otzxu&zu
vxumxgssotm
rgtm{gmky
Decrypted Strings:
CSE 240
Intro to
programming
languages
Enter a string to reverse: sun delvis
sivled nus
A password should be atleast 5 char long and should contain atleast one lower case char, atleast one uppercase char,
atleast one number and only numbers and letters
Enter a password to validate: Asu123
Password is valid
*/
1. You are given a C file which contains a partially completed program. Follow the instructions...
Please use Visual Studio! Let me know if you need anything else <3 #include <stdio.h> #include <string.h> #pragma warning(disable : 4996) // compiler directive for Visual Studio only // Read before you start: // You are given a partially complete program. Complete the functions in order for this program to work successfully. // All instructions are given above the required functions, please read them and follow them carefully. // You shoud not modify the function return types or parameters. //...
How do you do the commented part of this question (its the part that is bolded)? #include <stdio.h> #include <string.h> main(){ int *p, in=10; p = ∈ printf("%d\n", *p ); char arr[]="hello"; char *ptr = arr; // different ways to pass the array, at "pointer" level. printf("%s %s %s\n", arr, &arr[0], ptr); //different ways to access arr[0] printf("%c %c %c %c\n", arr[0], *ptr, *arr, ptr[0]); //different ways to access arr[1] printf("%c %c %c %c\n", arr[1], *(ptr+1), *(arr+1), ptr[1] ); //different...
// READ BEFORE YOU START: // You are given a partially completed program that creates a list of students for a school. // Each student has the corresponding information: name, gender, class, standard, and roll_number. // To begin, you should trace through the given code and understand how it works. // Please read the instructions above each required function and follow the directions carefully. // If you modify any of the given code, the return types, or the parameters, you...
Please answer problem #5 thank you str.c #include "str.h" #include <stdio.h> int str_len(char *s) { /* this is here so code compiles */ return 0; } /* array version */ /* concantenate t to the end of s; s must be big enough */ void str_cat(char s[], char t[]) { int i, j; i = j = 0; while (s[i] != '\0') /* find end of s */ i++; while ((s[i++] = t[j++]) != '\0') /* copy t */ ;...
Can you help me make these two methods listed below work? I have code written but it is not working. I would appreciate any advice or help. Function "isAPalidrome" accepts an array of characters and returns an integer. You must use pointer operations only, no arrays. This function should return 1 (true) if the parameter 'string' is a palindrome, or 0 (false) if 'string' is not a palindrome. A palindrome is a sequence of characters which when reversed, is the...
Need help for C program. Thx #include <stdio.h> #include <string.h> #include <ctype.h> // READ BEFORE YOU START: // This homework is built on homework 06. The given program is an updated version of hw06 solution. It begins by displaying a menu to the user // with the add() function from the last homework, as well as some new options: add an actor/actress to a movie, display a list of movies for // an actor/actress, delete all movies, display all movies,...
In C Programming Language In this lab you will implement 4 string functions, two using array notation and two using pointers. The functions must have the signatures given below. You may not use any C library string functions. The functions are 1. int my strlen (char s ) - This function returns the number of characters in a string. You should use array notation for this function. 2. int my strcpy (char s [], char t I)- This function overwrites...
Please help me with those 2 question problem, please help, thanks!! Code (Please use visual studio): #include <stdio.h> #include <string.h> #pragma warning(disable : 4996) // compiler directive for Visual Studio only // Read before you start: // You are given a partially complete program. Your job is to complete the functions in order for this program to work successfully. // All instructions are given above the required functions, please read them and follow them carefully. // You shoud not modify...
In C programming Write the implementation for the three functions described below. The functions are called from the provided main function. You may need to define additional “helper” functions to solve the problem efficiently. Write a print_string function that prints the characters in a string to screen on- by-one. Write a is_identical function that compares if two strings are identical. The functions is required to be case insensitive. Return 0 if the two strings are not identical and 1 if...
Malloc function For the prelab assignment and the lab next week use malloc function to allocate space (to store the string) instead of creating fixed size character array. malloc function allows user to allocate memory (instead of compiler doing it by default) and this gives more control to the user and efficient allocation of the memory space. Example int *ptr ptr=malloc(sizeof(int)*10); In the example above integer pointer ptr is allocated a space of 10 blocks this is same as creating...