Uncomment required inclusion for 2-3 and update progress to 3-4

This commit is contained in:
caskd 2019-11-20 21:28:44 +01:00
parent 16788f80b1
commit 1ff7f327e3
No known key found for this signature in database
GPG Key ID: 79DB21404E300A27
2 changed files with 27 additions and 2 deletions

View File

@ -3,9 +3,9 @@ cmake_minimum_required(VERSION 3.0)
project(learningc LANGUAGES C)
set(CHAPTER 2)
set(EXERCISE 3)
set(EXERCISE 4)
add_executable(learningc chapters/${CHAPTER}/exercises/${EXERCISE}.c)
target_link_libraries(learningc m) # Required for 2-3
#target_link_libraries(learningc m) # Required for 2-3
install(TARGETS learningc RUNTIME DESTINATION bin)

25
chapters/2/exercises/4.c Normal file
View File

@ -0,0 +1,25 @@
#include <stdio.h>
void squeeze(char s1[], char s2[]);
int main() {
char sent[] = "I am a ssssnake!", banned[] = "as";
squeeze(sent,banned);
printf("Result: %s", sent);
return 0;
}
void squeeze(char s1[], char s2[]) {
int i,j,k,s; // i is writing position and k is reading position
for (i = 0, k = 0; s1[k] != '\0'; k++) {
for (s = 0, j = 0; s2[j] != '\0'; j++) {
// We check if we have a disallowed character and break if it is the case
if (s1[k] == s2[j]) {
s = 1;
break;
}
}
if (!s) {
s1[i++] = s1[k]; // As long as the character is not disallowed, write it and increase the write position
}
}
s1[i] = '\0';
}