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

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

	scanf("%[^\n]", str);
	int length = strlen(str);

	for(i = 0; i < length; i++) {
		ret = strchr(safe, str[i]);
		if(ret == NULL) {
			printf("%%%02X", (unsigned)str[i] & 0xffU);
		} else {
			printf("%c", str[i]);
		}
	}
	printf("\n");
	return 0;
}