1. 程式人生 > >遞迴和非遞迴i方法實現字串個數

遞迴和非遞迴i方法實現字串個數

#include<stdio.h>
#include<stdlib.h>
//使用遞迴實現字串長度
int len(char *str){
        if(*str == '\0'){
                return 0;
        }
        return  len(str+1)+1;
}
int main(){
        char str[20];
        int count =0;

        printf("請輸入字串:");
        scanf("%s", str);
        count = len(str);


        printf("%d\n",count);
}


#include<stdio.h>
#include<stdlib.h>
//使用非遞迴實現字串長度
int main(){
        char str[20];
       
		int i = 0;
        printf("請輸入字串:");
        scanf("%s", str);
        while(*(str+i)!= '\0'){
                
				i++;
        }
        printf("%d\n",i);
        return 0;
}

結果:

相關推薦

i方法實現字串個數

#include<stdio.h> #include<stdlib.h> //使用遞迴實現字串長度

一列數字的規則如下;1,1,2,3,5,8,13,21,34........ 求第30位數字是多少,用兩種方法演算法實現

斐波納契數列(Fibonacci Sequence),又稱黃金分割數列。在數學上,斐波納契數列以如下被以遞迴的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,現在我從演算法的角度,利用遞迴和非

求第n個斐波那契數(分別用兩種方法求解)

斐波那契數列指的是這樣一個數列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55……這個數列從第3項開始,每一項都等於前兩項之和。 這裡分別用遞迴和非遞迴的方法實現: 遞迴 #define _CRT_SECURE_NO_WARNINGS 1 #include&l

猴子吃桃問題,用方法

猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。   public class Test{ &nb

【資料結構】八大排序之快速排序(方法

上一博文我們講了氣泡排序,但是由於他的時間複雜度過高為O(n*n),於是在氣泡排序的基礎上今天要說的是快速排序。 本文講述兩個內容: 1.快速排序的三種方法。 2.快速排序的優化 一.什麼是快速排序???      通過一趟排序將要排序的資料分割成獨立的兩部

三種方法分別實現strlen

不使用庫函式來實現strlen函式: 方法1:設定一個計數器len,當str不是‘\0’時,len++; 方法2:採用遞迴的想法,將大事化小;“abcde”可是轉化為1+“bcde” … 1+1+1+1+“e”。每一次都訪問str的下一個地址,當然跳出遞迴的條件

[C語言]用方法在楊氏矩陣中查詢

從楊氏矩陣中查詢數字,以及調整奇數位於陣列的前半部分 //從楊氏矩陣中查詢數字 //1.從右上角開始找,如果要找的值大於當前值,向下找,否則,向左找,方向確定 //2.從左下角開始找,如果要找的值大於當前值,向右找,否則,向上找,方向確定 //---->最

[leetcode]爬樓梯的方法

【Description】 You are climbing a stair case. It takes n steps to reach to the top. Each time you

N個臺階,一次可以走一步或者兩步,求走這n個臺階有多少種方法實現

1、遞迴實現 <pre name="code" class="cpp">///遞迴方法 int Fibonacci(unsigned int N) { if(N<=2)

方法列印螺旋矩陣

之前考慮的是方陣,現在是矩陣 #include "stdio.h" #include <iostream> void SetMatrix1(int **matrix, int x, int y, int k) { int start=1; if(x==y)

資料結構用方法實現二分查詢法

       二分查詢法說的通俗一點就是折半查詢,每查詢一次,所對應的元素就會減少一半,所以這種方法的優點就是比較的次數少,查詢的速度快。但其最大的缺點就是插入資料比較困難。所以在面對資料一直會發生變動的列表,就不推薦用二分查詢法了。        那麼下面就來實際介紹一下

練習題013:二分查詢(兩種方法

題目:用遞迴和非遞迴兩種方法實現二分查詢 非遞迴法: int binary_search(int *arr, int lenth, int key) { assert(arr != NU

歸併排序(方法實現

/* 歸併排序 VS2010 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define OK 1 #define ERROR 0 #define MAX

JAVA中分別採用方法建立選單欄

1.首先編寫一個建立樹的方法。該方法中傳入的形參為包含選單欄資訊的列表,返回值為選單樹的根結點。 public static final DefaultMutableTreeNode createTree(List<Node> list) { D

二叉樹的前序,中序,後序的遍歷的程式碼-C語言

#include <stdio.h> #include<stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input l

二叉樹的前中後序遍歷(版本)

各位讀者週末愉快呀,今天我想來說說一道很常見的面試題目 —— 關於二叉樹前中後序遍歷的實現。本文將以遞迴和非遞迴方式實現這 3 種遍歷方式,程式碼都比較短,可以放心食用。 先簡單說明一下這 3 種遍歷方式有什麼不同 —— 對於每種遍歷,樹中每個結點都需要經過 3 次(對於葉結點,其左右子樹視為空子樹),但前

【演算法】二叉樹的遍歷(轉)

原文地址 【寫在前面】   二叉樹是一種非常重要的資料結構,很多其它資料結構都是基於二叉樹的基礎演變而來的。對於二叉樹,有前序、中序以及後序三種遍歷方法。因為樹的定義本身就 是遞迴定義,因此採用遞迴的方法去實現樹的三種遍歷不僅容易理解而且程式碼很簡潔。而對於樹的遍歷若採用非遞迴的方法,就要採

leetcode 783. 二叉搜尋樹結點最小距離(實現java)

題目描述: 給定一個二叉搜尋樹的根結點 root, 返回樹中任意兩節點的差的最小值。 示例: 輸入: root = [4,2,6,1,3,null,null] 輸出: 1 解釋: 注意,root是樹結點物件(TreeNode object),而不是陣列。 給定的樹 [4,

No.19程式碼練習:斐波那契數列,某數k次冪,模擬實現strlen(),階乘 ,逆置字串

學習不易,需要堅持。 遞迴 程式呼叫自身的程式設計技巧稱為遞迴( recursion)。遞迴做為一種演算法在程式設計語言中廣泛應用。 一個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把一個大型複雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞迴策略只需

楊氏矩陣查詢數字(

楊氏矩陣  有一個二維陣列. 陣列的每行從左到右是遞增的,每列從上到下是遞增的. 在這樣的陣列中查詢一個數字是否存在。 要求:時間複雜度小於O(N);  例:  1 2 3          4 5 6