李春葆 新编C语言习题与解析 4-2-26

本文介绍了一个简单的C语言函数,该函数能够将输入的字符串转换为整数。通过解析字符串中的符号并逐位计算数值,实现了从字符到整数的有效转换。
//把一串字符串转化为整数输出
#include<stdio.h>
#include<string.h>


int tran(char str[])
{
	int i=0, n, sign;
	for (; str[i] == ' ' || str[i] == '\n' || str[i] == '\t';i++);
	sign = 1;
	if (str[i] == '+' || str[i] == '-')
		sign = (str[i++] == '+') ? 1: -1;
	for (n = 0; str[i] >= '0' && str[i] <= '9'; i++)
		n = 10 * n + str[i]-48;  //这一步是关键
	return (n*sign);
}

int main()
{
	char str[10]=" -123";
	//scanf_s("%s", str);
	int result;
	result = tran(str);
	printf("result=%d\n\n", result);
	return 0;
}
<think> 我们根据用户的需求,用户想查找《新编C语言习题解析》的相关资料。我们参考了站内引用,其中引用[1]介绍了这本书的内容和结构,引用[2][3][4]则展示了一些具体的例题和解析。 因此,我们可以这样组织回答: 1. 先介绍这本书的基本信息(根据引用[1]) 2. 然后可以举一些书中的例题(参考引用[2][3][4]),并简要说明这些例题的解析要点。 同时,按照系统级指令,我们需要生成相关问题。 注意:引用[2][3][4]分别提到了书中的一些具体题目,我们可以选择其中两个有代表性的进行介绍(比如字符串转整数和求字符串交集)。 另外,用户要求使用中文回答,并注意数学表达式的格式(虽然这个问题主要涉及代码,但如果有数学表达式也要注意)。 由于问题中主要涉及代码,所以我们将代码部分用代码块表示(注意格式)。 最后,生成相关问题。 下面开始组织回答: </think> ### 《新编C语言习题解析》相关资料 根据引用内容,《新编C语言习题解析》(李春葆编著)是一本针对C语言程序设计的专业辅导书籍,主要特点如下: 1. **内容结构** 全书共分9章,涵盖C语言核心知识点: - C语言概述 - 数据类型及其运算 - 选择语句和循环语句 - 数组 - 指针 - 函数 - 结构体和共用体 - 预处理和位段 - 文件系统操作[^1] 2. **习题解析特色** 每章包含: - **基本知识点**:高度概括核心概念(如指针原理、内存管理等) - **典型例题**:精选习题附带详细解析,例如: ```c // 字符串转整数(引用[3]例4-2-26) int tran(char str[]) { int i=0, n, sign; for(; str[i]==' '||str[i]=='\n'||str[i]=='\t';i++); // 跳过空白符 sign = (str[i]=='-') ? -1 : 1; if(str[i]=='+'||str[i]=='-') i++; for(n=0; str[i]>='0'&&str[i]<='9'; i++) n = 10*n + str[i]-48; // ASCII转换关键步骤 return n*sign; } ``` - 重点解析:`str[i]-48`实现字符到数字的转换,处理符号位和空白符的技巧[^3] 3. **编程实践案例** - **字符串交集计算**(引用[4]例4-2-25): ```c for(count1=0; str1[count1]!='\0'; count1++) { for(count2=0; str2[count2]!='\0'; count2++) { if(str2[count2]==str1[count1]) str3[count3++]=str1[count1]; // 交集存储 } } str3[count3]='\0'; // 补字符串终结符 ``` - 强调:输入字符串需确保无重复字符,终止符`\0`的必要性[^4] 4. **易错点解析** - 指针字符串:区分`char *d="string"`(字符串常量)和`char d='c'`(字符变量)的内存差异[^2] - 转义字符:辨析`\x12`(十六进制)、`\012`(八进制)`\n`等标准转义符 该书通过系统化习题训练,旨在提升读者对C语言底层机制(如内存管理、类型转换)的理解,强化实际问题解决能力[^1][^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值