summaryrefslogtreecommitdiff
path: root/urlencode.c
blob: 5a418f2bf29cfca7f4fab39d9a5194ec75da2aa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>

int main() {
	char str[2047];
	char safe[] = "ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz1234567890-._~";
	char *ret;
	int i;

	scanf("%[^\n]", str);

	for(i = 0; i < (strlen(str)); i++) {

		ret = strchr(safe, str[i]);
		if(ret == NULL) {
			printf("%%%02X", (unsigned)str[i] & 0xffU);
		} else {
			printf("%c", str[i]);
		}
	}

	printf("\n");
	return 0;
}