繁体   English   中英

不使用itoa将int转换为字符串

[英]Converting int to string without using itoa

#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 =字符串; 而(* s)s ++; return s-字符串;

说缺少“类”:缺少标签名称和语法错误:<

我不知道该如何解决..尝试各种东西..

任何帮助,将不胜感激..

非常感谢

看来您已经以某种方式将HTML标记添加到C ++源代码中:

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

我会继续进行修复,但错误消息引用的是<字符,因此我认为这是您的实际问题。 也许您错误地从某个网页复制并粘贴了代码?

编辑 :我看到@RayToal已编辑HTML出您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM