练习11-1
#include <stdio.h>
int main(void){
char *p = "123";
printf("p=\"%s\"\n", p);
p = "456";
printf("p=\"%s\"\n", p);
return 0;
}
练习11-2
#include <stdio.h>
int count(const char*c){
int n = 0;
while (*c++)
n++;
return n;
}
int main(void)
{
int i;
int n = 0;
char a[][5] = { "LISP", "C", "Ada" };
char *p[] = { "PAUL", "X", "MAC" };
for (i = 0; i <count(a); i++)
printf("a[%d] = \"%s\"\n", i, a[i]);
for (i = 0; i < count(p); i++)
printf("p[%d] = \"%s\"\n", i, p[i]);
return 0;
}
练习11-3#include <stdio.h>
char *str_copy(char *d, const char *s)
{
char *t = d;
while (*d++ = *s++)
;
return t;
}
int main(void)
{
char str[128] = "ABC";
char tmp[128];
printf("str = \"%s\"\n", str);
printf("复制的是:", tmp);
scanf("%s", tmp);
puts("复制了。");
printf("str = \"%s\"\n", str_copy(str, tmp));
return 0;
}
练习11-4#include <stdio.h>
void put_string (const char *s)
{
while (*s)
putchar(*s++);
}
int main(void)
{
char str[128] = "ABC";
put_string(str);
return 0;
}
练习11-5#include <stdio.h>
int str_chnum(const char *s, int c)
{
int n = 0;
while (*s){
if (*s == c)
n++;
*s++;
}
return (n);
}
int main(void)
{
char ch='d';
char str[128] = "ABBBBBBBBBBBBBBBCCCCCCCCCCCCCAAAAAAAAAAAAAAAAC";
printf("C的个数是:%d",str_chnum(str,ch));
return 0;
}
练习11-7#include <ctype.h>
#include <stdio.h>
void str_toupper(char *s)
{
int i = 0;
while (*s) {
*s = toupper(*s);
*s++;
}
}
void str_tolower(char *s)
{
int i = 0;
while (s) {
s[i] = tolower(s[i]);
i++;
}
}
int main(void)
{
char str[128];
printf("请输入字符串:");
scanf("%s", str);
str_toupper(str);
printf("大写字母:%s\n", str);
str_tolower(str);
printf("小写字母:%s\n", str);
return 0;
}
练习11-8
# include <stdio.h>
void del_digit(char *str)
{
char *p = str;
while (*p)
if (*p >= '0' && *p <= '9')
p++;
else
*str++ = *p++;
*str = '\0';
}
int main(void){
char str[128];
printf("请输入字符串:");
scanf("%s", str);
del_digit(str);
printf("删除数字后为:%s", str);
return 0;
}
# include <stdio.h>
void del_digit(char *str)
{
char *p = str;
while (*p)
if (*p >= '0' && *p <= '9')
p++;
else
*str++ = *p++;
*str = '\0';
}
int main(void){
char str[128];
printf("请输入字符串:");
scanf("%s", str);
del_digit(str);
printf("删除数字后为:%s", str);
return 0;
}