/*
* rstrlen -- get length of string recursively
*
* Matt Bishop, ECS 36A
*
* April 30, 2024
* -- original program written
*/
#include <stdio.h>
/*
* macro
*/
#define MAXLEN 1024 /* max length of input */
/*
* recursive string length calculation
*/
int rstrlen(char *s)
{
/* base case: if string is empty, length is 0 */
if (*s == '\0')
return(0);
/* recursion: lop off first char, get length of rest, add 1, return it */
return(1 + rstrlen(s+1));
}
/*
* main program
*/
int main(void)
{
char buf[MAXLEN]; /* input buffer */
char *b; /* pointer used to find \n or end ofinput line */
/*
* keep going until you get an EOF
*/
while(fgets(buf, 1000, stdin) != NULL){
/* clobber the first newline (shouldbe at the end, if present) */
for(b = buf; *b != '\0' && *b != '\n'; b++)
;
*b = '\0';
/* print the string and itslength */
printf("string '%s' is %d characters long\n",
buf, rstrlen(buf));
}
/* do svidanya! */
return(0);
}
|
ECS 36A, Programming & Problem Solving Version of April 2, 2024 at 12:13PM
|
You can get the raw source code here. |