Есть ли в языке C способ сделать что-то вроде:
/* it's a demo code. I know that it doesn't work. */
char foo[] = "abc";
char* p = &foo[0];
int len = 3;
while(len) {
printf("%c", *p);
p--;
len--;
}
и получите cba
вывод?
Мой вопрос: есть ли простой способ сделать это? возможно, используя арифметические указатели. Я знаю, что могу написать такую функцию:
/* Note: I haven't tested the this code. But I believe that works. */
char *strrev(char input[]) {
if (input == NULL) return NULL;
int len = strlen(input) - 1;
char * rev = malloc(len+1);
if (rev == NULL) return NULL;
for (; len != 0; len--) *rev++ = input[len];
if (len == 0) {
*rev++= '\0';
return rev;
} else {
free(rev);
return NULL;
}
}
Но я ищу более простой способ, мне нужно написать функцию, которая начинает сравнения с полустроки * * 1010