在官方的文档中,http://www.cplusplus.com/refer…,例程的 strncpy 的用法是:
/* strncpy example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[]= "To be or not to be";
char str2[40];
char str3[40];
/* copy to sized buffer (overflo…… 阅读全文
Tag Archives: 字符串
字符串转浮点数
今天看到一个题,让把字符串转成浮点数,列了一下,需要注意的应该就是这几点
前导空白字符
符号位
前导零
#include <stdio.h>
#include <string.h>
#include <math.h>
double a2f(char *str) {
// leading space
while (*str==' ' || *str=='t') {
str++;
}
// judge sign
int sign = 1;…… 阅读全文
字符串距离
今天见到一个题,让求两个字符串之间的距离,隐约记得之前在 php 中用过这个的现成函数,当时还查了一下原理,是一个俄罗斯的人搞的一个算法,原理是用矩阵,于是就往矩阵上去想,结果没想出来,后来听同学说那是个 dp,想想也是,唉,思路狭隘了
参考这里,http://www.java3z.com/cwbwebho…,写了一个矩阵的版本,…… 阅读全文
字符串反转
今天遇到一个题,让反转字符串,简单题,注意下细节就好了
#include <stdio.h>
#include <string.h>
char *str_reverse(char *str) {
if (str == NULL) {
return NULL;
}
for (char *left=str, *right=str+strlen(str)-1;
left<right; left++, right--) {
char tmp = *left;
*left = *right…… 阅读全文
找出第一个不重复的字母
今天笔试,遇到一个题目要找出一个字符串中第一个不重复的字母,简单写了一下
#include <stdio.h>
void find(const char *str, char *result)
{
int count[128]={0}, pos[128]={0};
for (int i=0; str[i]!='\0'; i++)
{
int ascii = (int)(str[i]);
count[ascii]++;
if (pos[ascii] == 0)
{
…… 阅读全文
输出一个字符串的组合
跟上次输出一个字符串的排列类似,http://zrj.me/archives/472,要求输出一个字符串的组合,思路也是递归
#include <stdio.h>
#include <string.h>
void combine(char str[], int str_index, char res_total, char result[], int res_index)
{
if (res_total == res_index)
{
for (int i=0; i<res_…… 阅读全文
KMP 串匹配
昨天一天没有写出代码来,惭愧惭愧,昨天在看红黑树和堆排序,可惜最后都没有能写出东西来,渐渐的感觉网络上的中文资料不太可以依赖了啊,要么就是没有,要么就是 google 出来排名在前面的都会写错,看来要么转向英文资料,要么转向纸质书了
今天参考这里,http://blog.csdn.net/v_july_v/…,写了个 KMP 串匹配,…… 阅读全文