Преобразование int в строку без использования itoa - PullRequest
0 голосов
/ 28 октября 2011
#include <stdio.h>
//#include <<strong class="highlight">string</strong>.h>

// Function declarations
// typedef __w64 unsigned int size_t
size_t strlen(const char *);
char *strrev(char *);
char *itoa(int, char *, int);

int main() {
    int num = 123;
    char buf[5];

    itoa(num, buf, 10);

    printf("%s\n", buf);

    return 0;
}

size_t strlen(const char *string) {
    const char *s;

    s = <strong class="highlight">string</strong>;
    while (*s)
        s++;
    return s - <strong class="highlight">string</strong>;
}

char *strrev(char *str) {
    char *p1, *p2;

    if (!str || !*str)
        return str;

    for (p1 = str, p2 = str + strlen(str) - 1; p2 > p1; ++p1, --p2) {
        *p1 ^= *p2;
        *p2 ^= *p1;
        *p1 ^= *p2;
    }

    return str;
}

char *itoa(int n, char *s, int b) {
    static char digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
    int i=0, sign;

    if ((sign = n) < 0)
        n = -n;

    do {
        s[i++] = digits[n % b];
    } while ((n /= b) > 0);

    if (sign < 0)
        s[i++] = '-';
    s[i] = '\0';

    return strrev(s);
}

получаю ошибку в этой части вопроса ...

s = строка;while (* s) s ++;return s - строка;

, говорящая об отсутствии 'class': отсутствует имя тега и синтаксическая ошибка: <</p>

Я не знаю, как это исправить .. пробую разные вещи ..

любая помощь будет оценена ..

большое спасибо

1 Ответ

3 голосов
/ 28 октября 2011

Похоже, вы каким-то образом получили HTML-разметку в исходном коде C ++:

s = <strong class="highlight">string</strong>;
while (*s)
    s++;
return s - <strong class="highlight">string</strong>;

Я бы пошел дальше и исправил бы это, но сообщение об ошибке относится к символу <, так что я думаю, что это ваша настоящая проблема. Возможно, вы неправильно скопировали и вставили код с какой-либо веб-страницы?

РЕДАКТИРОВАТЬ : Я вижу, @RayToal изменил HTML из вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...