【練習題】編寫一個函式,把一個char組成的字串迴圈右移n位
例如:原來是”abcdefghi”,如果n = 2,移位後應該是”hiabcdefg”。
思路:當讀到這個題目的時候,沒有編寫過類似程式的人可能會想,程式的實現就是依照字元的迴圈右移這樣實現的,但仔細想會發現這樣很難實現,不妨換一種思路,我們先把需要移到前面的字元取出來放進一個新的字元陣列,接著再把前面的沒有移動的部分插到新字元陣列的尾部,加上字串結束標誌‘\0’,這樣就形成了一個符合要求的新的字元陣列,把它輸出來就可以了.
解析:本題提供了兩種方法。
#include <stdio.h> #include <string.h> #define MAX_LEN 1024 void LoopMove_1(char *pStr, int steps) { int len = strlen(pStr) - steps; char temp[MAX_LEN]; strcpy(temp, pStr + len); strcpy(temp + steps, pStr); *(temp + steps + len) = '\0'; strcpy(pStr, temp); } void LoopMove_2(char *pStr, int steps) { int len = strlen(pStr) - steps; char temp[MAX_LEN]; memcpy(temp, pStr + len, steps); memcpy(temp + steps, pStr, len); memcpy(pStr, temp, len + steps); } int main(void) { char str1[] = "abcdefghi"; LoopMove_1(str1, 3); printf("%s\n", str1); char str2[] = "gklmnopqrst"; LoopMove_2(str2, 3); printf("%s\n", str2); return 0; }
相關推薦
【練習題】編寫一個函式,把一個char組成的字串迴圈右移n位
例如:原來是”abcdefghi”,如果n = 2,移位後應該是”hiabcdefg”。 思路:當讀到這個題目的時候,沒有編寫過類似程式的人可能會想,程式的實現就是依照字元的迴圈右移這樣實現的,但仔細想會發現這樣很難實現,不妨換一種思路,我們先把需要移到前面的字元取出來放進
把一個char組成的字串迴圈右移n位
void LoopMove(char *pStr, int steps) { int n = strlen(pStr) - steps; char temp[MAX_LEN]; strcpy(temp, pStr + n); strcpy(temp + steps,
編寫一個函式,作用是把一個char組成的字串迴圈右移n個。比如原來是“abcdefghi”如果n=2,移位後應該是“hiabcdefg” 函式頭是這樣的:
void Loopover(char *str,int steps){int len=strlen(str);char tmp[len+3];strcpy(tmp,str+len-steps);strcpy(tmp+2,str);tmp[len]='\0';strcpy(st
實現一個函式,把一個字串中的字元從小寫轉為大寫。
#include <stdio.h> #include <stdlib.h> #include <conio.h> void upper(char* s, char* us) { while(*s != '\0')
實現一個函式,把一個字串轉換成整數
作者:翁鬆秀 劍指offer之“把一個字串轉換成整數” 很多人看到這麼簡單的面試題目,都是大筆一揮,立馬寫下洋洋灑灑函式: int StringToInt(char* string){ int num = 0; while(*str
【練習題】編寫一個名為is_palindrome的函式,判斷一個人名是否為迴文,如‘BOB’是迴文
#編寫一個名為is_palindrome的函式,判斷一個人名是否為迴文,如‘BOB’是迴文 #方法一: def is_palindrome(name): low = 0 high =
【c語言】字串替換空格:請實現一個函式,把字串中的每個空格替換成“%20”
// 字串替換空格:請實現一個函式,把字串中的每個空格替換成“%20”。 // 例如輸入“we are happy.”,則輸出“we%20are%20happy.” #include <stdio.h> #include <assert.h>
【我的演算法日記】請實現一個函式,把字串中的每個空格替換成“%20”。例如輸入“We are happy.”,則輸出“We%20are%20happy.”。
請實現一個函式,把字串中的每個空格替換成“%20”。例如輸入“We are happy.”,則輸出“We%20are%20happy.”。在劍指offer中有這樣一道題目,我已經既不清楚了,我記得該題好像不準使用輔助空間,需要在遠字串上進行操作,如果在java中,直接用re
【C語言】編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數)
//編寫一個函式,將一個數字字串轉換成這個字串對應的數字(包括正浮點數、負浮點數) //例如:“12.34“ 返回12.34. " -12.34" 返回12.34 #include<
【劍指offer】請實現一個函式,將一個字串中的每個空格替換
劍指offer 題目如下 請實現一個函式,將一個字串中的每個空格替換成"%20"。 例如,當字串為We Are Happy, 則經過替換後的字串為 We%20Are%20Happy。 具體的程式碼實現如下 1.遍歷實現 public class Solution {
【阿里前端測評題】實現 mergePromise 函式,把傳進去的陣列順序先後執行,並且把返回的資料先後放到陣列(data)中
const timeout = ms => new Promise((resolve) => { setTimeout(() => { resolve();
Python練習題7(統計不同字元數量):編寫一個函式,分別統計出傳入字串引數(可能不只一個引數)的英文字母、空格、數字和其它字元的個數(比如:'hello world,123456,Change the world by program!',這句話有字母33個,數字6個,空格5個,
方法一:用內建方法isdigit()判斷數字,isspace()判斷空格,isalpha()判斷字母,然後格式化輸出 1 def str_count(msgs): 2 letter_count = 0 3 num_count = 0 4 space_count = 0
【練習題】編寫打印出一個單鏈表的所有元素的程式【連結串列】
只是實現了連結串列ADT的部分功能。 /*---編寫打印出一個單鏈表的所有元素的程式---*/ #include <stdio.h> #include <stdlib.h> struct Node{ int val; struct Node *
【廖雪峰 python教程 課後題改編】利用map()函式,把使用者輸入的不規範的英文名字,變為首字母大寫,其他小寫的規範名字
原題目: # -*- coding: utf-8 -*- #輸入名字,變成首字母大寫,其他字母小寫的標準格式 def normalize(name): str1 = '' for i, ch in enumerate(name): if i
【練習題】第二章--變數,表示式,語句(Think Python)
一些比較特殊的用法: 不過+和*可以用在字串上面。 +加號的意思就是字串拼接了,會把兩個字串拼到一起,如下所示: >>> first = 'throat' >>> second = 'warbler' >>> first + s
【提醒】家譜鏈GCS,又一個以區塊鏈概念包裝的傳銷幣!
比特幣及各種山寨幣經過2017年瘋狂的暴漲,數字貨幣動輒幾十倍上百倍的暴富效應,吸引了大量普通人開始關注數字貨幣和區塊鏈,市場上於是出現了各種區塊鏈、數字貨幣、虛擬貨幣投資為名,行非法集資或網路傳銷之實的案例。 家譜鏈GCS,又一個以區塊鏈概念包裝的傳銷幣! 一、專案方相關成員造假 官網顯示,“京東集團
編寫一個函式,分別統計出傳入字串引數(可能不止一個引數)的英文字母,空格,數字和其他字元的個數
>>> def gs(*string): yw,kg,sz,qt=0,0,0,0 for str1 in string: for i in str1: if('0'&
請實現一個函式,把字串中的每個空格替換成“%20”,例如輸入 “We are Happly。” 則輸出“we%20are%20happy。”
請實現一個函式,把字串中的每個空格替換成“%20”,例如輸入 “We are Happly。” 則輸出“we%20are%20happy。” void ReplaceBlank(char String[],int length) { //originalLength
.編寫一個函式,將一個數字字串轉換成該字串對應的數字
/* 編寫一個函式,將一個數字字串轉換成該字串對應的數字(包括正整數、負整數) 例如:“12“ 返回12 “-123“ 返回-123 函式原型:int my_atof(char *str){
字串替換空格:請實現一個函式,把字元陣列中的每個空格替換成“%20”
例如輸入“we are happy”,則輸出“we%20are%20happy” 想要實現這個目的,先觀察下面的函式實現原理圖。 先通過遍歷字元陣列,找出其中的空格數,計算出應該移動到的位置,接著就