2018 07 28

  1. 题目: 请编写一个C函数,该函数将一个字符串逆序
    #include <stdio.h>               
    #include <string.h>
    #include <stdlib.h>
                                        //在子函数中设置数组存放形参的内容,由于子函数中是
                                           数组是局部变量,所以局部变量无法通过函数返回值返回,                         
                                            需要定义静态变量,用指针函数返回地址
    char *nixu(char *str)
    {	
    	int n, i, j = 0;
    	n = strlen(str);
    	static char a[100] = {0};
    	for(i = 0; i < n; i++)
    	{
    		a[j++] = str[n-1-i];               
    	}
    	a[j] = '\0';
    	return a;
    
    }
    
    
    
    int main()
    {
    	char *ptr;
    	ptr = (char *)malloc(sizeof(char) * 64);
    
    	scanf("%s",ptr);
    	printf("%s", nixu(ptr));
    
    	return 0;
    }
    

     方法二:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void nixu(char *str)
    {	
    	int n, i;
    	char tmp;
    	n = strlen(str);
    	for(i = 0; i < n / 2; i++)
    	{
    		tmp = str[i];
    		str[i] = str[n - i - 1];
    		str[n - i - 1] = tmp;
    	}
    }
    
    
    
    int main()
    {
    	char *ptr;
    	ptr = (char *)malloc(sizeof(char) * 64);
    
    	scanf("%s",ptr);
    	nixu(ptr);
    	printf("%s\n", ptr);
    
    	return 0;
    }
  2. 题目: 输入一个字符串,计算字符串中子串出现的次字数
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    int zichuan(char *str, char *ptr)
    {
    	int i, m, n, count = 0;
    	n = strlen(str);
    	m = strlen(ptr);
    	for(i = 0; i < n + 1 - m; i++)
    	{
    		if(strncmp(str + i,ptr,m) == 0)
            {
    			count++;
    		}
    		if(i == n - m)
    		{
    			break;
    		}
    	}
    	return count;
    
    }
    
    int main()
    {
    	char *str = (char *)malloc(sizeof(char) * 64);
    	char *ptr = (char *)malloc(sizeof(char) * 64);
    	
    	scanf("%s%s",str, ptr);
    
    	printf("%d",zichuan(str, ptr));
    
    	return 0;
    }
    

猜你喜欢

转载自blog.csdn.net/scv5876666/article/details/81265050
今日推荐