将字符串中从第m个字符开始的n个字符复制到另一个字符串;输入字符串,将连接的数字看作一个整数,统计并输出这些整数(C)

以下是一些C语言关于字符串的题目

将字符串中从第m个字符开始的n个字符复制到另一个字符串


  1. gets()puts()的使用
  2. 玩了下指针
#include<stdio.h>
int main()
{
	//声明函数
	void copy(char*p,char*q,int m,int n);
	
	char a[100], b[100];
	int m, n;
	printf("please input a number(第m个开始):");
	scanf("%d", &m);
	printf("please input a number(复制n个):");
	scanf("%d", &n);
	
	//输入字符串
	printf("please input a string:");
	getchar();
	gets(a); 
	copy(a,b,m,n);
	puts(b);
	return 0;
 } 
 
 void copy(char *p, char *q, int m, int n)
 {
 	int i;
 	for(i = m-1; i < m+n-1; i++) *(q++)=*(p+i);	
 }

字符串反序输出


  1. 中间变量 t 就是一个交换器
  2. for(i = 0, j = k-1; i < k/2; i++, j--)看到这个for语句不要懵,注意;即可
#include<stdio.h>
#include<string.h>
int main()
{
	char a[100], t;
	int i, j, k;
	printf("please enter a string:\n");
	scanf("%s", a);
	k = strlen(a);
	for(i = 0, j = k-1; i < k/2; i++, j--){
		t = a[i];
		a[i] = a[j];
		a[j] = t;
	}
	printf("%s",a);
	return 0;
}

用递归法将整数转换成字符串


在字符串的基础上,对递归的初步练习

#include<stdio.h>
int main(){
	int str(int n);
	int n, i;
	printf("please input a 任一位数的整数:");
	scanf("%d", &n);
	if(n < 0){
		putchar('-');
		n = -n;
	}
	str(n);
	return 0;
}

int str(int n){
	int i;
	if((i = n/10) != 0) str(i);
 	putchar(n % 10 + '0');	 
}

输入字符串,将连接的数字看作一个整数,统计并输出这些整数


#include<stdio.h>
int main()
{
	int trans(char*, int*);
	char b[100];
	int a[100], i, c;
	printf("please input a string:");
	gets(b);
	c = trans(b,a);
	printf("%d个整数,分别为:", c);
	for(i = 0; i < c; i++) printf("%-8d", a[i]); 
	return 0;
 } 
 
 int trans(char*b, int*a)
 {
 	int i, f, c;
 	for(i = f = c = 0; *(b+i); i++){
 		if('0' < *(b+i) && *(b+i) < '9'){
 			if(f) *(a+c-1) = *(a+c-1)*10 + *(b+i) - '0';
 			else{
 				f = 1;
 				*(a+c++) = *(b+i) - '0';
			 }
		 }
 		else f=0;
	 }
 	return c;	
 }
发布了150 篇原创文章 · 获赞 267 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/Zhangguohao666/article/details/88969713