c/c++面试45-50之字符串
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之字符串的更多相关文章
- 剑指offer 面试45题
面试45题: 题:把数组排成最小的数 题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小 ...
- C++学习50 对字符串流的读写
文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据 ...
- [google面试CTCI] 1-5.替换字符串中特定字符
[字符串与数组] Q:Write a method to replace all spaces in a string with ‘%20’ 题目:写一个算法将一个字符串中的空格替换成%20 解答: ...
- ES6学习:两个面试题目--关于模板字符串
号称看完就能“让开发飞起来”,不过文中的两个面试题目的知识点并没包括在文中. https://www.jianshu.com/p/287e0bb867ae 文中并没有完整的知识点去完成上面的两道题,这 ...
- 面试之C语言字符串操作总结大全(转载)
趁着十一就好好补补数据结构吧,通信这个不软不硬的专业,现在还是得好好学学补习补习,,你这个非211的本科生!虽然拿到了一个offer,但是觉得时间还有,得继续拼一拼,希望不辜负! 1)字符串操作 st ...
- 《Java程序猿面试宝典》之字符串
前不久刚看完这一章,然而这遗忘速度实在是不能忍,既然总是遗忘,那么老衲就和你磨上一磨. 1.字符串基础 先说字符串吧,看例1: String a = "abc"; String b ...
- 剑指offer-第七章面试案例1(字符串转换为整型)
//将字符串转换为整型 //思路:特殊的输入测试: //1,考虑字符串是否为空.2.字符串问空的时候的返回0,和真实的返回0直键的区别.3,字符串中出现0~9的字符处理 //4.字符串中出现*,¥等一 ...
- 面试之leetcode20堆栈-字符串括号匹配,队列实现栈
1 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认 ...
- python面试_总结04_字符串练习题
完成下列列表相关的编程题,先运行下列的test函数,在完成每道题之后,都可以通过调用test函数检测所写函数对错 def test(got, expected): if got == expected ...
- using语法糖详解 2015-01-06 17:45 50人阅读 评论(0) 收藏
前段事件在using外套try catch 突然想到,如果出现异常 会不会执行释放,不执行的话那服务器很可能导致崩溃... 特意上了CSDN问了大神..得到了答案.. Using相等于try catc ...
随机推荐
- Java IO 类
IO包中绝大部分的类都是由以下四个类直接或间接继承来的InputStream OutputStream Reader 还有Writer 其中InputStream和OutputStream代表输入流和 ...
- MapReduce 1工作原理图文详解
MapReduce工作原理图文详解 一 MapReduce程序执行流程 程序执行流程图如下: 流程分析:1.在客户端启动一个作业.2.向JobTracker请求一个Job ID.3.将运行作业所需要的 ...
- 数据挖掘项目之---通过对web日志的挖掘来实现内容推荐系统
先说一说问题,不知道大家有没有这样的经验,反正我是经常碰到. 举例1,某些网站每隔几天就发邮件给我,每次发的邮件内容都是一些我根本不感兴趣的东西,我不甚其扰,对其深恶痛绝. 举例2,添 ...
- c/c++标准库中的文件操作总结
1 stdio.h是c标准库中的标准输入输出库 2 在c++中调用的方法 直接调用即可,但是最好在函数名前面加上::,以示区分类的内部函数和c标准库函数. 3 c标准输入输出库的使用 3.1 核心结构 ...
- JAVA工厂方法模式(Factory Method)
1.普通工厂模式 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 1-1.建立Sender接口 public interface Sender { public void ...
- window.onerror 错误监听,发到后台
var doc = document.body || document.documentElement; var _onerror = Onerror(''); var Onerror = funct ...
- iOS信号量
引子: 在取本地联系人列表的时候看到同事用的这么一段代码: dispatch_semaphore_t sema = dispatch_semaphore_create(); ABAddressBook ...
- Codeforces Round #258 (Div. 2) D. Count Good Substrings —— 组合数学
题目链接:http://codeforces.com/problemset/problem/451/D D. Count Good Substrings time limit per test 2 s ...
- Appium——详解Appium server capabilities
appium server capabilities来告诉appium,如何运行自动化测试,因此需要详细了解. 官方文档:http://appium.io/slate/en/master/?rub ...
- node.js 开发博客系统
1. 安装yoman :npm install -g yo 2. 安装 generator-express :npm install -g generator-express 3. 安装 bower ...