generated from PlexSheep/baserepo
half working translate
This commit is contained in:
parent
add1185efc
commit
9d148639a7
|
@ -1,11 +1,35 @@
|
||||||
/*
|
/*
|
||||||
* Read from stdin. replace all occurences of arg 1 with arg2.
|
* Read from stdin. replace all occurences of arg 1 with arg2.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
const int BUF_SIZE = 1024;
|
||||||
|
|
||||||
|
char translate_c(char src, char s1[], char s2[]) {
|
||||||
|
int n = strlen(s1);
|
||||||
|
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
if (src == s1[i]) {
|
||||||
|
return s2[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return src;
|
||||||
|
}
|
||||||
|
|
||||||
|
void translate(char source[], char target[], char s1[], char s2[]) {
|
||||||
|
int n = strlen(source);
|
||||||
|
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
target[i] = translate_c(source[i], s1, s2); // FIXME: this is buggy
|
||||||
|
}
|
||||||
|
|
||||||
|
target[n] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[]) {
|
||||||
{
|
char *translator[2];
|
||||||
char* translator[2];
|
|
||||||
if (argc != 3) {
|
if (argc != 3) {
|
||||||
printf("not enough arguments");
|
printf("not enough arguments");
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -15,7 +39,14 @@ int main(int argc, char *argv[])
|
||||||
printf("translator0: %s\n", translator[0]);
|
printf("translator0: %s\n", translator[0]);
|
||||||
printf("translator1: %s\n", translator[1]);
|
printf("translator1: %s\n", translator[1]);
|
||||||
|
|
||||||
// TODO: translate from stdin and print to stdout
|
char source[BUF_SIZE];
|
||||||
|
char target[BUF_SIZE];
|
||||||
|
|
||||||
|
while (scanf("%s", source) != EOF) {
|
||||||
|
translate(source, target, translator[0], translator[1]);
|
||||||
|
|
||||||
|
printf("%s\n", target);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue