c语言itob函数

k&r习题3-5,机械工业那本中文答案不咋的,只给了处理10进制以下的参考,本答案摘自网上的那本英文习题解答

/* itob(n,s,b)
 * converts the integer n into a base b char
 */
void itob(int n, char s[], int b)
{
    static char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i, sign;
    if ( b < 2 || b > 36 ) {
             fprintf(stderr, "EX3_5: Cannot support base %d\n", b);
                  exit(EXIT_FAILURE);
    }
    if ((sign = n) < 0)
             n = -n;
    i = 0;
    do {
             s[i++] = digits[n % b];
    } while ((n /= b) > 0);
    if (sign < 0)
             s[i++] = ‘-‘;
    s[i]=‘\0‘;
    reverse(s);

}

时间: 2024-10-31 01:47:06

c语言itob函数的相关文章

[C/C++基础] C语言常用函数sprintf和snprintf的使用方法

Sprintf 函数声明:int sprintf(char *buffer, const char *format [, argument1, argument2, -]) 用途:将一段数据写入以地址buffer开始的字符串缓冲区 所属库文件: <stdio.h> 参数:(1)buffer,将要写入数据的起始地址:(2)format,写入数据的格式:(3)argument:要写的数据,可以是任何格式的. 返回值:实际写入的字符串长度 说明:此函数需要注意缓冲区buffer溢出,要为写入的arg

C语言strlen()函数用法

C语言strlen()函数:返回字符串的长度 头文件:#include <string.h> strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen (char *s);  s为指定的字符串 eg: #include<stdio.h> #include<string.h> int main() { char *str1 = "http://see.xidian.edu.cn/cpp/u/shipin/"; char

C语言_函数

函数 1.函数构成 int main(int argc, const char * argv[]) { // insert code here... return 0; } 返回值类型  函数名(函数参数) { 函数体语句: return 返回值: } 2.函数分类 1)标准函数 由官方或第三方库提供的函数,可以直接调用,无需实现: 2)自定义函数 由程序员自己实现的函数: 3.编写函数的步骤 1)声明函数 写在头文件 2)实现函数 写在原文件 3)调用函数 C阶段,一般在主函数调用 [注意事项

C语言学习-函数和递归函数

C源程序是由函数组成的,有且只有一个主函数(main()函数). 一.函数 1.自定义函数的书写格式: 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) { 函数体 }例如: 1 include <stdio.h> 2 void test(); 3 4 int main() { 5 test(); 6 return 0; 7 } 8 9 void test() { 10 11 printf("hello world!"); 12 13 } 2.定义函数的

C语言基础 函数--思想的体现

1.C语言由函数组成,main函数又称主函数,是程序的入口. 1.1函数定义:    1.1.1    格式:        返回值类型 函数名(形式参数列表)        {            函数体        }     1.1.2    函数名:  不允许相同 1.1.3    参数注意点:        1.形式参数: 定义函数时函数名后面括号中的参数,简称形参        2.实际参数: 调用函数时传入的具体数据,简称实参        3.实参个数必须等于形参个数    

C语言中函数和指针的参数传递

最近写二叉树的数据结构实验,想用一个没有返回值的函数来创建一个树,发现这个树就是建立不起来,那么我就用这个例子讨论一下c语言中指针作为形参的函数中传递中隐藏的东西. 大家知道C++中有引用的概念,两个数据引用同一个数据,那么更改任意的一个都相当于更改了本体,那么另一个数据所对应的值也会改变,可是C中是没有这个概念的.所以就产生了一些东西.和我们本来想的有差别. 一.明确C语言中函数的入口: C语言中函数的形参负责接收外部数据,那么数据究竟怎么进入函数的呢,其实我们在函数体内操作的形参只是传递进来

从头开始-05.C语言中函数

函数: 完成特定功能代码段 特点:函数只有调用的时候才会执行 定义格式:返回值类型 函数名称(形参类型 形参名称,...){ 语句; ...  } 函数参数 形式参数:在定义函数的时候,函数名后面小括号中的参数 实际参数:在函数调用的时候,函数名后面小括号中的参数 注意点: 形参与实参必须一一对应 实参与形参的类型必须一致 基本数据类型作为函数参数传递是值传递 组作为函数参数传递是地址传递 指针作为函数参数传递是地址传递 结构体作为函数参数传递是值传递 返回值: return 作用: 1.结束函

C语言之函数可变参数

先上一段代码: #include<cstdarg> #include<iostream> #include<string> using namespace std; void error(char* format,...){//至少要有一个参数,后边的...表示参数可变 va_list ap; int d,flag; char c, *s; va_start(ap,*format);//从args参数开始后面都是可变参数,va_start,va_end都为宏 while

Go语言之函数方法

在Go语言中,函数和方法不太一样,有明确的概念区分.在其他语言中,比如Java,一般来说,函数就是方法,方法就是函数.但是在Go语言中,函数是指不属于任何结构体.类型的方法.也就是说,函数是没有接收者的:而方法是有接收者的.我们说的方法要么是属于一个结构体的,要么属于一个新定义的类型的. 函数 函数和方法,虽然概念不同,但是定义非常相似.函数的定义声明没有接收者,所以我们直接在Go文件里.Go包之下定义声明即可. func main() {     sum := add(1, 2)     fm