明解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 ...
随机推荐
- 解决邮件发送错误:503 Error: need EHLO and AUTH first
引用文章 https://blog.csdn.net/lingfeian/article/details/96731620 问题描述 2019-07-21 16:14:00.449 ERROR 966 ...
- [转]在.NET Core 2.x中将多个强类型设置实例与命名选项一起使用
自1.0版之前,ASP.NET Core已使用“ 选项”模式配置强类型设置对象.从那时起,该功能获得了更多功能.例如,引入了ASP.NET Core 1.1 IOptionsSnapshot,它允许您 ...
- Oracle - 如何查找指定字符串所出现的表
需求:举个例子,oracle测试库的scott用户下面的有张emp表,emp表的ename列中有一行数据为'CLARK'.红色标记部分. SQL> select * from scott.emp ...
- MVC过滤器:自定义授权过滤器
一.授权过滤器 授权过滤器用于实现IAuthorizationFilter接口和做出关于是否执行操作方法(如执行身份验证或验证请求的属性)的安全策略.AuthorizeAttribute类继承了IAu ...
- DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项
场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1028 ...
- 缓存cache(擦车)
第一次接触到Cache的时候,是在WebForm中,第一次接触,我就再也没能忘记,cache(擦车,的拼音) 客户端浏览器缓存https://blog.csdn.net/y874961524/arti ...
- java笔记----cpu消耗快速定位代码
下载ProcessExplorer ProcessExplorer下载地址:ProcessExplorer 下载运行代码 打开ProcessExplorer 查看javaw.exe的pid jstac ...
- 阿里Java完整学习资料
最近有很多读者问我如何系统的进行 Java 学习,于是我就翻阅一下之前收集的资料,分享给大家. 这份资料是我在市面上众多的 Java 学习资料中挑选出来的,相信肯定是精品.而且这份资料是出自阿里,具有 ...
- HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来
在使用HttpPost httpPost = new HttpPost(postUrl);的post请求后,拿到返回的response,response返回200成功. 到此没有任何问题. respo ...
- js对象属性方法
window对象方法方法: 1.alert():显示带有一段消息和确认按钮的警告框 2.prompt():显示可提示用户输入的对话框 3.fonfirm():显示带有一段消息以及确认按钮和取消按钮的对 ...