方法-C语言 指针指向字符串的问题

问题描述

C语言 指针指向字符串的问题
用指针指向字符串的方法 求出字符串中所有数字字符的和,我是初学者对这个很模糊,希望能仔细讲解一哈

解决方案

首先就是判断遍历这个字符串,如果该字符是数字字符,则统计。 判断是否为数字字符: ch <=‘0’ && ch>='9' 也可以使用库函数isdigit() 求和的话: num += ch+‘0’

解决方案二:
是这样么?也不知道LZ是不是这个意思

#include <cstring>#include <cstdio>int main() {    char str[] = ""0123456789"";    char *str1 = str;    char *ptr = str1;    int sum = 0;    while (*ptr) {        sum += (*ptr - '0');        ++ptr;    }    printf (""%dn"" sum);    return 0;} 

解决方案三:
#include
#include

int main()
{
char *pstr = ""sdfjl12321lsdjfsldfj888sdf"";//定义字符串指针并初始化
int len = strlen(pstr);//计算字符串长度
int i = 0 j = 0;
int sum = 0;
for(i = 0; i < len; i++)//遍历指针字符
{
if(isdigit(pstr[i]))//数字字符判断
{
if(j==0)
printf(""%c"" pstr[i]);
else
printf(""+%c"" pstr[i]);
sum += (pstr[i]-'0');//计算和
j++;
}

}printf(""=%dn"" sum);return 0;

}

解决方案四:
倒数第一个printf上面的“}”去掉

时间: 2024-10-02 13:01:03

方法-C语言 指针指向字符串的问题的相关文章

c语言指针指向地址的问题 求大神详细解答

问题描述 c语言指针指向地址的问题 求大神详细解答 #include int main(int argc char const *argv[]){ int b=0x12345678;char *p4=(char *)&b;printf(""p=0x%hhxn""*p4 );printf(""p=0x%hhxn""*(p4+1) );char *p7=""helloworld"";

c语言-C语言指针,字符串复制过程的问题

问题描述 C语言指针,字符串复制过程的问题 下面是字符串复制的代码,str1[]如果限定大小为10,则会溢出,结果是s2正常,s1输出为 u? 请问为什么是这个结果呢? #include #include int main(){ char *s1; char *s2; char str[] = {""How are you?""}; char str1[10]={}; s1 = str; s2 = str1; while ((*s2 = *s1) != ''){ s

c语言-C语言指针指向数组问题

问题描述 C语言指针指向数组问题 #include int main(){ int a[5]; int *p,i; printf("please enter ten numbers:"); for(i=0;i<5;i++){ scanf("%d",&a[i]); } for(p=a;p<(a+5);p++) scanf("%d",*p); printf(" "); return 0; } 代码如图,是课本上

c语言指针数组 字符串-C语言指针数组查找问题

问题描述 C语言指针数组查找问题 #include#includevoid main(){ void input(char name[]int n); void sort(char *name[]int n); void print(char *name[]int n); void search(char *name[]int n); char *name[4]; int n=4; input(namen); sort(namen); print(namen); search(namen);}v

c语言-C语言用指针给字符串排序,错在哪?

问题描述 C语言用指针给字符串排序,错在哪? #include #include void main() { void max(char *x,char *y,char *z); char a[50],b[50],c[50],d,*p,*q,*m; printf("请输入三个字符串 "); gets(a); gets(b); gets(c); p=a; q=b; m=c; printf("排序如下; "); max(p,q,m); puts(p);puts(q);p

深入理解C指针之五:指针和字符串

原文:深入理解C指针之五:指针和字符串 基础概念 字符串可以分配到内存的不同区域,通常使用指针来支持字符串操作.字符串是以ASCII字符NUL结尾的字符序列.ASCII字符NUL表示为\0.字符串通常存储在数组或者从堆上分配的内存中.不过,并非所有的字符数组都是字符串.例如,字符数组可能没有NUL字符. C中有两种类型的字符串. * 单字节字符串.由char数据类型组成的序列. * 宽字符串.由wchar_t数据类型组成的序列. wchar_t数据类型用来表示宽字符串,可能是16位或32位宽.这

C语言的指针指向的字符串的打印

问题描述 C语言的指针指向的字符串的打印 对于这样一个指针变量 char *s="hello world"; 如何逐个打印其中的每一个字符 比如利用for循环等等 解决方案 #include "stdafx.h" #include "string.h" #include "stdio.h" int main(int argc, char* argv[]) { char *s = "hello world";

理解C语言——从小菜到大神的晋级之路(8)——数组、指针和字符串

       本期视频点击这里        在前面几次我们接触的数据类型都是简单数据类型,使用一个数据个体表示一个元素.C语言中还提供了多种复杂数据类型,其中最简单的一种就是数组.数组这一结构使用内存中一段连续的内存空间保存一组相同类型的变量,这些变量通过数组的下标/索引的不同相互区分.数组与指针有着十分紧密的联系,通常使用数组下标能实现的操作都可以使用指针完成,而且使用指针的程序通常效率更高.但是指针和数组也存在着一些明显的差别,如果误用将导致错误.另外,C语言中还定义了一种极为常用的特殊的

C语言指针使用方法

为初学者服务.这是本文的宗旨.指针是c和c++中的难点和重点.有些程序员们精通dos下的basic.c语言的其它各种特性,在basic中都有类似的东西.只有指针,是baisc所不具备的.指针是c的灵魂. 我不想重复大多数书上说得很清楚的东西,我只是把我看过的书中说得不清楚或没有说,而我又觉得我理解得有点道理的东西写出来. 1.指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指