C#
Code: Select all
SomeMethod("Point A[{0},{1}], B[{2},{3}]", a.x, a.y, b.x, b.y)Code: Select all
SomeMethod("Point A[{0},{1}], B[{2},{3}]", a.x, a.y, b.x, b.y)Code: Select all
SomeMethod("Point A[{0},{1}], B[{2},{3}]", a.x, a.y, b.x, b.y)Code: Select all
SomeMethod "'Point A[{0},{1}], B[{2},{3}]', a.x, a.y, b.x, b.y"Code: Select all
#include <stdio.h>
#define ARG_SIZE 10
void print_pattern(char *pattern, int* arglist, int argcount) {
char *p;
char argbuf[ARG_SIZE];
char *argp;
char linebuf[128];
char *lbp;
int arg;
p = pattern;
lbp = linebuf;
while(*p) {
if (*p != '{') {
*lbp++ = *p++;
} else {
p++; /* skip brace */
/* copy the argument string to the arg buffer */
argp = argbuf;
while (*p >= '0' && *p <= '9') {
*argp++ = *p++;
}
*argp++ = '\0';
if (*p != '}') {
/* syntax error */
return;
}
p++; /* skip closing } */
/* convert arg to int */
arg = 0;
argp = argbuf;
while (*argp) {
arg = arg * 10 + *argp++ - '0';
}
arg = arg - 1;
if (arg >= argcount) {
/* argument to large error */
return;
}
arg = arglist[arg];
/* convert value to string */
argp = argbuf + ARG_SIZE - 1;
*argp-- = '\0';
if (arg == 0) {
*argp = '0';
} else {
while (arg > 0) {
*argp-- = '0' + arg % 10;
arg /= 10;
}
argp++;
}
/* copy arg to line */
while (*argp) {
*lbp++ = *argp++;
}
}
*lbp = '\0';
}
printf("%s\n", linebuf);
}
int main() {
int args[3];
args[0] = 11;
args[1] = 0;
args[2] = 23;
print_pattern("this {1} that {2} and the other {3}", args, 3);
}