itoa/atoi/getpass

myitoa

#include <stdio.h>
#include <string.h>
void resver(char *s)//反转字符串
{
    int len = strlen(s);
    //printf("len=%d\n",len);
    int i = 0;
    char tmp = 0;
    for (; i<len/2; i++)
    {
        tmp = s[i];
        s[i] = s[len-1-i];
        s[len-1-i] = tmp;
    }
}
const char *myitoa(int n)
{
    static char buf[100];//必须为static,或者是全局变量
    memset(buf, 0, sizeof(buf));
    int FlagF = 0;    //1-f, 0-z
    int i = 0;
    if (n < 0)
    {
        FlagF = 1;
        n = 0 - n;
    }
    while (n)
    {
        buf[i++] = n % 10 + '0';
        n = n / 10;
    }
    if (FlagF == 1)
    {
        buf[i++] = '-';
    }
    buf[i] = '\0';
    printf("before buf:%s\n", buf);
    resver(buf);
    printf("after buf:%s\n", buf);
    return buf;
}
int main()
{
    printf("%s\n", myitoa(123));
    printf("%s\n", myitoa(-123));
    return 0;
}

myatoi

#include <stdio.h>
int mystrlen(const char *s)
{
    int i = 0;
    while (*s++)
    {
        i++;
    }
    return i;
}
int power10(int n)
{
    if (n == 0)
    {
        return 1;
    }
    int val = 1;
    int i = 0;
    for (; i < n; i++)
    {
        val = val * 10;
    }
    return val;
}
int char2i(char c)
{
    if ((c >= '0') || (c <= '9'))
    {
        return (c - '0');
    } else
    {
        return 0;
    }
}
int myatoi(const char *str)
{
    int FlagF = 0; //1-f, 0-z
    const char *p = str;
    int i = 0;
    int value = 0;
    if (str[0] == '-')
    {
        FlagF = 1; //
        p = ++str;
    }
    int len = mystrlen(p);
    int lentmp = len;
    for (; i < len; i++)
    {
        value += char2i(p[i]) * power10(lentmp - 1);
        lentmp--;
    }
    if (FlagF == 1)
    {
        return (0 - value);
    } else
    {
        return value;
    }
}
int main()
{
    const char *s = "-123";
    printf("%d\n", myatoi(s));
    return 0;
}

getpass屏幕不回显

时间: 2024-12-05 20:08:47

itoa/atoi/getpass的相关文章

atoi 和itoa用法

1.itoa  在linux下没有itoa这个函数       原型:char  *itoa(int   value,char   *string,int   radix)                   用法:#include   <stdlib.h>               功能:将整数value转换成字符串存入string, radix为转换时所用基数(保存到字符串中的数据的进制基数 2 8 10 16)             说明:返回指向转换后的字符串的指针        

基于atoi()与itoa()函数的内部实现方法详解_C 语言

C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转 换为字符串的一个例子:       atoi     把字符串转换成整型数       itoa     把一整数转换为字符串 复制代码 代码如下:  #include "stdio.h"#include "ctype.h"#include "stdlib.h"/*Converts a character string int

深入理解atoi()与itoa()函数的用法_C 语言

itoa()函数的原型为: char *itoa( int value, char *string,int radix);itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转换数字时所用的基数.在例中,转换基数为10.10:十进制:2:二进制...itoa并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,请用sprintf.是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:

atoi和itoa函数的实现方法_C 语言

//atoi的实现 复制代码 代码如下: #include<iostream>using namespace std;int atio1(char *s){int sign=1,num=0;    if(*s=='-')        sign=-1;    s++;    while((*s)!='\0')    {        num=num*10+(*s-'0');        s++;    }       return num*sign;   } //itoa的实现 复制代码 代

C语言数字与字符串转换 atoi()函数、itoa()函数、sprintf()函数

在编程中经常需要用到数字与字符串的转换,下面就总结一下. 1.atoi() C/C++标准库函数,用于字符串到整数的转换. 函数原型:int atoi (const char * str); 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main () 4 { 5 char *numchars="1234"; 6 int num=atoi(numchars); 7 printf("%d\n"

C语言atoi()和itoa()函数的实现

makefile .SUFFIXES: .c .o CC=gcc SRCS=test.c OBJS=$(SRCS:.c=.o) EXEC=test all: $(OBJS) $(CC) -o $(EXEC) $(OBJS) @echo '-------------ok--------------' .c.o: $(CC) -Wall -g -o $@ -c $< clean: rm -f $(OBJS) rm -f core* myitoa #include <stdio.h> #inc

LoadRunner中Lr_save_string()函数和Itoa()函数的使用

/* 目的:使用for循环添加多条有规律的数据,比如说:a1.a2.a3......a1000 方法:从上面看1-1000是一个有序序列,并且前面的a都是固定的,所以只需要用for循环将1-1000循环出来就可以了. 但是loadrunner使用的是C语言的语法,所以不能向在java中一样,将两个变量直接相加(+)(+:连字符) 所以这个时候就需要将首先将int变量转换成string,然后再用lr_save_string()函数将该变量用loadrunner可以识别的参数化方式保存起来,再应用到

vc++-在VC++2013版中使用itoa函数(被各种字符转换弄晕了)

问题描述 在VC++2013版中使用itoa函数(被各种字符转换弄晕了) void CTestDlg::OnClickedBtnAdd() { int num1, num2, num3; char ch1[10], ch2[10], ch3[10]; GetDlgItem(IDC_EDIT1)->GetWindowText(_T("ch1"), 10); GetDlgItem(IDC_EDIT1)->GetWindowText(_T("ch2"), 10

指针-atoi函数代码怎么理解?

问题描述 atoi函数代码怎么理解? int myatoi(const char* sptr) { bool ispnum=true; int ans=0; if(*sptr=='-')//判断是否是负数{ ispnum=false; sptr++; } else if(*sptr=='+')//判断是否为正数{ sptr++; }while(*sptr!='')//类型转化{ ans=ans*10+(*sptr-'0'); sptr++; }if(ispnum) return ans; els