45 使用库函数将数字转换为字符串,下面是常用库函数

(1) itoa():将整型转换为字符串

(2)ltoa():将长整形转换为字符串

(3)gcvt():将浮点转换为字符串

46 不使用库函数将整数转换为字符串

-------->通过把整数的各位上的数字加上'\0'转换为char类型并存到字符数组

(1)代码

 #include <iostream>
using namespace std; void int2str(int n, char *str)
{
char buf[] = "";
int i = ;
int len = ;
int temp = n < ? -n : n;//绝对值 if (str == NULL)
{
return;
}
while (temp)
{
buf[i++] = (temp % ) + '\0';
temp = temp / ;
}
len = n < ? ++i : i;//如果n是负数 需要多一位来存放负数
str[i] = ;
while ()
{
i--;
if (buf[len - i - ] == )
{
break;
}
str[i] = buf[len - i - ];//buf数组里的字符拷到字符串
if (i == )
{
str[i] = '-';
}
} } int main2()
{
int nNum;
char p[]; cout << "please input an integer";
cin >> nNum;
cout << "output";
int2str(nNum, p);
cout << p << endl; return ;
}

47 不适用库函数将字符串转换为数字

(1)代码

 #include <iostream>
using namespace std; int str2int(const char* str)
{
int temp = ;
const char *ptr = str; if (*str == '-' || *str == '+')
{
str++;
}
while (*str != )
{
if ((*str<'') || (*str>''))
{
break;
}
temp = temp * + (*str - '');//如果当前字符是数字 计算这个值
str++;//移动下一个字符
}
if (*ptr == '-')
{
temp = -temp;
}
return temp;
} int main3()
{
int n = ;
char p[] = "";
cin.getline(p, );//中断获取字符串
n = str2int(p);//字符串转换整数
cout << n << endl;
getchar();
return ;
}

48 编程实现strcpy函数

(1)代码

 #include <stdio.h>

 char *strcpy(char* strDest, const char* strSrc)
{
if ((strDest == NULL) || (strSrc == NULL))
{
return NULL;
}
char* strDestCopy = strDest;//保存目标字符串首地址
while ((*strDest++ = *strSrc++) != '\0')
{
return strDestCopy;
}
} int getStrlen(const char* strSrc)
{
int len = ;
while (*strSrc++ != '\0')
{
len++;
}
return len;
} int main()
{
char strSrc[] = "hello world";
char strDest[];
int len = ; len = getStrlen(strcpy(strDest, strSrc));
printf("strDest:%s\n", strDest);
printf("lenth of strDest:%d\n", len);
getchar();
return ;
}

49 strcpy与memcpy的区别

(1)复制的内容不同。strcpy只能复制字符串,但是memcpy可以复制任何内容(数组  结构体。。)

(2)复制的方法不同。strcpy不需要指定长度,遇到结束符\0结束。memcpy根据第三个参数决定复制的长度

(3)用途不同  复制除了字符串以外的一般就用memcpy

50 改错之数组越界

(1)

 void test()
{
char string[];
char* str1="";
strcpy(string,str1); //因为会把str1的结束符复制过去导致越界
}

(2)

 void test2()
{
char string[],str1[];
int i;
for(i=;i<;i++)
{
str1[i] = 'a';
}
strcpy(string,str1);//str1表示的字符数组没有以\0结尾,strcpy的时候不知道结束字符
}

好了 先到这。。。。。还有好几个任务,加油

c/c++面试45-50之字符串的更多相关文章

  1. 剑指offer 面试45题

    面试45题: 题:把数组排成最小的数 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小 ...

  2. C++学习50 对字符串流的读写

    文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据 ...

  3. [google面试CTCI] 1-5.替换字符串中特定字符

    [字符串与数组] Q:Write a method to replace all spaces in a string with ‘%20’ 题目:写一个算法将一个字符串中的空格替换成%20 解答: ...

  4. ES6学习:两个面试题目--关于模板字符串

    号称看完就能“让开发飞起来”,不过文中的两个面试题目的知识点并没包括在文中. https://www.jianshu.com/p/287e0bb867ae 文中并没有完整的知识点去完成上面的两道题,这 ...

  5. 面试之C语言字符串操作总结大全(转载)

    趁着十一就好好补补数据结构吧,通信这个不软不硬的专业,现在还是得好好学学补习补习,,你这个非211的本科生!虽然拿到了一个offer,但是觉得时间还有,得继续拼一拼,希望不辜负! 1)字符串操作 st ...

  6. 《Java程序猿面试宝典》之字符串

    前不久刚看完这一章,然而这遗忘速度实在是不能忍,既然总是遗忘,那么老衲就和你磨上一磨. 1.字符串基础 先说字符串吧,看例1: String a = "abc"; String b ...

  7. 剑指offer-第七章面试案例1(字符串转换为整型)

    //将字符串转换为整型 //思路:特殊的输入测试: //1,考虑字符串是否为空.2.字符串问空的时候的返回0,和真实的返回0直键的区别.3,字符串中出现0~9的字符处理 //4.字符串中出现*,¥等一 ...

  8. 面试之leetcode20堆栈-字符串括号匹配,队列实现栈

    1 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认 ...

  9. python面试_总结04_字符串练习题

    完成下列列表相关的编程题,先运行下列的test函数,在完成每道题之后,都可以通过调用test函数检测所写函数对错 def test(got, expected): if got == expected ...

  10. using语法糖详解 2015-01-06 17:45 50人阅读 评论(0) 收藏

    前段事件在using外套try catch 突然想到,如果出现异常 会不会执行释放,不执行的话那服务器很可能导致崩溃... 特意上了CSDN问了大神..得到了答案.. Using相等于try catc ...

随机推荐

  1. asp识别手机端

    <script type="text/javascript"> var mobileAgent = new Array("iphone", &quo ...

  2. C# GetHashCode 的实现方式

    在项目中,在使用哈希表时.有时会须要Override GetHashCode. 这里给出一种普遍的做法: 版本号1:实现一个helper.传递类型T.返回这个类型的hashcode.函数逻辑非常直接, ...

  3. BestCoder #47 1001&amp;&amp;1002

    [比赛链接]cid=608">clikc here~~ ps:真是wuyu~~做了两小时.A出两道题,最后由于没加longlong所有被别人hack掉!,最后竟然不知道hack别人不成 ...

  4. EasyDarwin开源流媒体服务器gettimeofday性能优化(3000万/秒次优化至8000万次/秒)

    -本文由EasyDarwin开源团队成员贡献 一.问题描述 Easydarwin中大量使用gettimeofday来获取系统时间,对系统性能造成了一定的影响.我们来做个测试: While(1) { G ...

  5. ios上视频与音乐合成后出现播放兼容问题的解决方法

    近期EasyDarwin开源流媒体团队EasyVideoRecorder小组同学Carl在支持一款短视频应用上线时,遇到一个问题:我们在IOS上合成"图片+音乐"成为视频之后,在P ...

  6. asp.net mvc4 修改密码界面

    1.效果 说明:1.界面不太美观 这里面主要是包括 利用jQuery 插件validate验证form字段,jQuery提交form表单的方式 1.HTML代码 <!DOCTYPE html&g ...

  7. wepy开发

    工欲善其事必先利其器 ide安装.配置] https://tencent.github.io/wepy/document.html VS Code   1. 在 Code 里先安装 Vue 的语法高亮 ...

  8. Spark SQL includes a cost-based optimizer, columnar storage and code generation to make queries fast.

    https://spark.apache.org/sql/ Performance & Scalability Spark SQL includes a cost-based optimize ...

  9. MongoDB 学习五:索引

    这章我们介绍MongoDB的索引,用来优化查询. 索引介绍 数据库索引有些类似书的目录. 一个查询如果没有使用索引被称为表扫描,意思是它必须像阅读整本书那样去获取一个查询结果.一般来说,我们应尽量避免 ...

  10. leetcode leetcode 783. Minimum Distance Between BST Nodes

    Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the ...