明解C语言 入门篇 第十一章答案
练习11-1
/*
用指针实现的字符串的改写
*/ #include <stdio.h> int main(void)
{
char* p = ""; printf("p = \"%s\"\n", p); p = ""+; /* OK! */ printf("p = \"%s\"\n", p); return ;
}
只能输出“56”,因为p指向的地址+1后,整体往后移了一位,所以读到的内容从“456”变成了“56\0".
练习11-2
/*
字符串数组
*/ #include <stdio.h> int main(void)
{
int i;
char a[][] = { "LISP", "C", "Ada" };
char* p[] = { "PAUL", "X", "MAC","SKTNB"};//用 sizeof(a) / sizeof(a[0])表示数组元素个数
for (i = ; i <( sizeof(a) / sizeof(a[]));i++)
printf("a[%d] = \"%s\"\n", i, a[i]); for (i = ; i < (sizeof(p) / sizeof(p[])); i++)
printf("p[%d] = \"%s\"\n", i, p[i]); return ;
}
练习11-3
/*
复制字符串
*/ #include <stdio.h> /*--- 将字符串s复制到d ---*/
char* str_copy(char* d, const char* s)
{
char* t = d; while (*d++ = *s++)
;
return t;
} int main(void)
{
char str[] = "ABC";
char tmp[]; printf("str = \"%s\"\n", str); printf("复制的是:", tmp);
scanf("%s", tmp); puts("复制了。");
printf("str = \"%s\"\n", str_copy(str, tmp)); return ;
}
练习11-4
#include <stdio.h> void put_string(const char* s) {
putchar(*s);
while (*s++)
{
putchar(*s);
} } int main() {
char s[] ;
printf("请输入字符串:");
scanf("%s",s);
put_string(s);
}
练习11-5
#include <stdio.h> int str_chnum(const char* s,int c) { int cnt = ; while (*s != NULL) { if (*s == c) {
cnt++;
}
*s++;
}
return cnt; } int main() {
char s[] ;
char c ;
printf("要计数的字符是:");
scanf("%c", &c);
printf("请输入字符串:");
scanf("%s",s); printf("%d", str_chnum(s, c));
}
练习11-6
#include <stdio.h> char *str_chnum(const char* s,int c) { while (*s++) {
char* t = s; if (*s == c) {
return t;
break;
} } return NULL;
} int main() {
char s[] ;
char c ;
printf("要计数的字符是:");
scanf("%c", &c);
printf("请输入字符串:");
scanf("%s",s); printf("%s", str_chnum(s, c));
}
练习11-7
/*
对字符串中的英文字符进行大小写转换
*/ #include <ctype.h>
#include <stdio.h> /*--- 将字符串中的英文字符转为大写字母 ---*/
void str_toupper(char *s)
{
while (*s) {
*s = toupper(*s);
*s++;
} } /*--- 将字符串中的英文字符转为小写字母 ---*/
void str_tolower(char *s)
{
while (*s) {
*s = tolower(*s);
*s++;
}
} int main(void)
{
char str[]; printf("请输入字符串:");
scanf("%s", str); str_toupper(str);
printf("大写字母:%s\n", str); str_tolower(str);
printf("小写字母:%s\n", str); return ;
}
练习11-8
#include <stdio.h>
#include<stdlib.h> int strtoi( const char* nptr )
{
int sign = , num = ;
if (*nptr == '-') {
sign = -;
nptr++;
}
while (*nptr)
{
num = num * + (*nptr - '');
nptr++;
}
return num * sign;
} int main() {
char c[];
printf("请输入字符串:");
scanf("%s", c);
int m = strtoi(c);
printf("%d",m);
}
明解C语言 入门篇 第十一章答案的更多相关文章
- 明解C语言 入门篇 第五章答案
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; ...
- 明解C语言 入门篇 第四章答案
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); sca ...
- 明解C语言 入门篇 第三章答案
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...
- 明解C语言 入门篇 第十三章答案
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件& ...
- 明解C语言 入门篇 第七章答案
练习7-1 #include <stdio.h> int main() { int n; printf(,, ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4 ...
- 明解C语言 入门篇 第六章答案
练习6-1 /* 求两个整数中的最小值 */ #include <stdio.h> /*--- 返回三个整数中的最小值 ---*/ int min2(int a, int b) { int ...
- 明解C语言 中级篇 第四章答案
练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include ...
- 明解C语言 中级篇 第三章答案
练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h ...
- 明解C语言 入门篇 第二章答案
练习2-1 #include <stdio.h> int main() { int x; int y; int percent; puts("请输入两个整数"); pr ...
随机推荐
- SEH hook 的一种方法
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 技术学习来源:火哥(QQ:471194425) 该方法的一些原理暂 ...
- oracle学习笔记(十六) PL/SQL 异常和goto语句
PL/SQL 异常和goto语句 异常 预定义异常 oracle常见预定义异常: 错误号 异常错误信息名称 说明 ORA-0001 DUP_VAL_ON_INDEX 试图破坏一个唯一性限制 ORA-0 ...
- 2018-12-25-win10-uwp-通知列表
原文:2018-12-25-win10-uwp-通知列表 title author date CreateTime categories win10 uwp 通知列表 lindexi 2018-12- ...
- C# MediaPlayer
using System.Windows.Media; using Newtonsoft.Json; using System.ComponentModel; namespace ConsoleApp ...
- java基础(14):Eclipse、面向对象、自定义数据类型的使用
1. Eclipse的应用 1. 常用快捷操作 Ctrl+T:查看所选中类的继承树 例如,在下面代码中,选中Teacher类名,然后按Ctrl+T,就会显示出Teacher类的继承关系 //员工 ab ...
- 深入理解JVM,7种垃圾收集器
本人免费整理了Java高级资料,一共30G,需要自己领取.传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 如果说收集算法是内存回收的方法论, ...
- 通过SSH通道来访问MySQL
许多时候当要使用Mysql时,会遇到如下情况: 1. 信息比较重要,希望通信被加密.2. 一些端口,比如3306端口,被路由器禁用. 对第一个问题的一个比较直接的解决办法就是更改mysql的代码,或 ...
- liunx简单命令
mysql -h主机地址 -u用户名 -p用户密码 --进入数据库1.显示数据库列表. show databases; 2.显示库中的数据表: use mysql: //打开库 show tables ...
- Web基础--JavaScript入门
一.JavaScript 1.什么是JavaScript(JS) (1)JavaScript是嵌入HTML中的代码,在浏览器中执行的脚本语言,具有与Java和C语言类似的语法.(2)一种网页编程技术, ...
- 源码包安装转换rpm包
目录 纯净版虚拟机 1. 先安装个虚拟机,登陆nginx官网 http://nginx.org/选择一个稳定的版本 2. 右键复制地址,到新克隆的纯净虚拟机wget 下载 3.源码包 4.解压 tar ...