c语言字符串操作面试题,C语言常见字符串面试题.pdf
C語言常見字符串面試題 1. 字符串庫函數的內部實現 memset庫函數的實現 /* * memset - Fill a region of memory with the given value * @s: Pointer to the start of the area. * @c: The byte to fill the area with * @count: The size of the area. */ void *memset(void *s, int c, size_t count) { char *xs = s; while (count--) *xs++ = c; return s; } memcpy庫函數的實現 /* * memcpy - Copy one area of memory to another * @dest: Where to copy to * @src: Where to copy from * @count: The size of the area. */ void *memcpy(void *dest, const void *src, size_t count) { char *tmp = dest; const char *s = src; while (count--) *tmp++ = *s++; return dest; } memmove庫函數的實現 /* * memmove - Copy one area of memory to another * @dest: Where to copy to * @src: Where to copy from * @count: The size of the area. * Unlike memcpy(), memmove() copes with overlapping areas. */ void *memmove(void *dest, const void *src, size_t count) { char *tmp; const char *s; if (dest = l2) { l1--; if (!memcmp(s1, s2, l2)) return (char *)s1; s1++; } return NULL; } 常見字符串面試題 1)寫出在母串中查找子串出現次數的代碼. int count1(char* str, char* s) { char* s1; char* s2; int count = 0; while(*str!='/0') { s1 = str; s2 = s; while(*s2 == *s1 s1++; } if(*s2 == '/0') count++; str++; } return count; } 2)查找第一個匹配子串位置,如果返回的是s1長度len1表示沒有找到 size_t find(char* s1,char* s2) { size_t i=0; size_t len1 = strlen(s1) size_t len2 = strlen(s2); if(len1-len2 #include #include char *commanstring(char shortstring[], char longstring[]) { int i, j; char *substring=malloc(256); if(strstr(longstring, shortstring)!=NULL)//如果……,那么返回shortst ring return shortstring; for(i=strlen(shortstring)-1;i0; i--) //否則,開始循環計算 { for(j=0; jstrlen(str2)) //將短的字符串放前面 comman=commanstring(str2, str1); else comman=commanstring(str1, str2); printf(“the longest comman string is: %s/n“, comman); } 6) 判斷一個字符串是不是回文 int IsReverseStr(char *str) { int i,j; int found=1; if(str==NULL) return -1; char* p = str-1; while(*++p!= '/0'); --p; while(*str==*p if(!*cpSource) break; } ++cpSource; } return cpDest; }
展開閱讀全文
總結
以上是生活随笔為你收集整理的c语言字符串操作面试题,C语言常见字符串面试题.pdf的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言求35 45的最大公约数,c语言编
- 下一篇: 怎么看c语言错误出在哪,请各位大佬帮我看