编写程序,把从键盘输入的一个数字字符串(最长10个字符)转换为一个整数并输出。例如,若输入字符串“-1234”,则函数把它转换为整数值-1234。要求:不得调用C语言提供的将字符串转换为整数的函数。
分析:设存放数字字符串的数组为s,存放对应整型数的变量为n(初始值为0)。若字符串的第一个字符为’-’,则从第二个字符开始,否则从第一字符开始,直到’ ’为止
分析:设存放数字字符串的数组为s,存放对应整型数的变量为n(初始值为0)。若字符串的第一个字符为’-’,则从第二个字符开始,否则从第一字符开始,直到’ ’为止
方法一:用while循环读取字符串方式
#include "stdio.h"void main()
{char s[10];
long m=0;int i=0;
gets(s);if(s[0]=='-') i++;
while (s[i]!=' '){
if(s[i]<='9' && s[i]>='0')m=m*10+(s[i]-'0'); //转换
elsebreak;
i++;}
if(s[0]=='-') m=-m;printf("%ld
",m);}
方法二:用for循环读取字符串方式#include "stdio.h"
#include "string.h"void main()
{char s[10];
long m=0;int i=0;
int len;gets(s);
len=strlen(s); //获得字符串的有效有度if(s[0]=='-') //第一个字符若是“-”,有效长度减1;
{ len--;i++;}
for(;i<=len;i++){
if(s[i]<='9' && s[i]>='0')m=m*10+(s[i]-'0'); //转换公式
elsebreak;
}if(s[0]=='-') m=-m;
printf("%ld",m);
}
#include "stdio.h"void main()
{char s[10];
long m=0;int i=0;
gets(s);if(s[0]=='-') i++;
while (s[i]!=' '){
if(s[i]<='9' && s[i]>='0')m=m*10+(s[i]-'0'); //转换
elsebreak;
i++;}
if(s[0]=='-') m=-m;printf("%ld
",m);}
方法二:用for循环读取字符串方式#include "stdio.h"
#include "string.h"void main()
{char s[10];
long m=0;int i=0;
int len;gets(s);
len=strlen(s); //获得字符串的有效有度if(s[0]=='-') //第一个字符若是“-”,有效长度减1;
{ len--;i++;}
for(;i<=len;i++){
if(s[i]<='9' && s[i]>='0')m=m*10+(s[i]-'0'); //转换公式
elsebreak;
}if(s[0]=='-') m=-m;
printf("%ld",m);
}
举一反三
- 数组中可以存放字符串。一个一维字符数组可以存放 个字符串,一个二维字符数组可以存放 个字符串
- 一个字符串中任意个连续字符成为该串的子串。
- 题目2:字符串和函数要求从键盘中输入一个字符串,字符串为学生本人的学号(示例:“202111612101”),然后分别统计字符串中数字字符‘1’的个数,并输出。(要求使用字符数组、函数调用)题目2:字符串和函数要求从键盘中输入一个字符串,字符串为学生本人的学号(示例:“202111612101”),然后分别统计字符串中字符‘2’的个数,并输出。(要求使用字符数组、函数调用)
- 编写程序:输入一个长度不超过100的字符串,删除串中的重复字符。输入:要检查的字符串,长度不超过100个字符。输出:删除重复字符后的字符串。例如:输入:abacaeedabcdcd则输出:abced
- 输入一个以回车符为结束标志的字符串(少于10个字符),提取其中的所有数字字符('0'……'9'),将其转换为一个十进制整数输出。
内容
- 0
18.4______ (字符数组名1,字符数组名2)把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“\0”。
- 1
用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串
- 2
编写程序对输入的字符串a中下标为奇数的字符按ASCII码大小递增排序,下标为偶数的字符按ASCII码大小递减排序,并将排序后下标为奇数的字符取出,存入另一个字符数组中,形成一个新串c。最后输出a串和c串。
- 3
编一个程序,定义一个字符数组和一个字符串变量,给这个字符串变量输入一个字符串,然后用foreach语句把这个字符串拷贝到字符数组里,最后输出字符数组。
- 4
【简答题】输入一个包含数字和其他字符的字符串, 并通过 字符指针 来存储该字符串。统计并打印该字符串中数字字符的个数。 说明: 记得为 字符指针 开辟堆空间。 例如, 字符串 “a123x45?#7” 中包含 6 个数字字符