以下是一些C语言关于字符串的题目
将字符串中从第m个字符开始的n个字符复制到另一个字符串
- 对
gets()
和puts()
的使用- 玩了下指针
#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);
}
字符串反序输出
- 中间变量 t 就是一个交换器
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;
}