char 指针如何判断字符串需要输出长度

先上代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3
 4
 5 const char g_ip[32] = "123456789";
 6 int func1(const char *ip)
 7 {
 8         printf("ip:%s\n",ip);
 9         printf("ip size:%d\n",sizeof(ip));
10         if(*ip == ‘\0‘)
11                 printf("ip is none\n");
12         printf("g_ip:%s\n",g_ip);
13         printf("g_ip size:%d\n",sizeof(g_ip));
14         if(*ip == ‘\0‘)
15                 printf("g_ip is none\n");
16         return 0;
17 }
18
19 int main()
20 {
21         const char ip[32]="ABCDEFG";
22         func1(ip);
23         return 0;
24 }

运行结果:

[[email protected] ~]$ ./a.out
ip:ABCDEFG
ip size:8
g_ip:123456789
g_ip size:32

看8、9行代码,为什么ip是一个char指针, 但是%s的时候却知道到底要printf多长???

原文地址:https://www.cnblogs.com/fallenmoon/p/8979683.html

时间: 2024-10-31 19:53:23

char 指针如何判断字符串需要输出长度的相关文章

1字符串中的world替换为i bookan wisdom2.字符串的相加字符串输出,长度3比较字符串大小4截取字符串5字符串内所有a都替换成A6判断字符串是否以http开头7将字符串内admin和123截取出来8字符添加

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 字符串中的world替换为i bookan wisdom */ //        NSString *[email protected]"hello world and sunshine"; //        NSString *newstr3=[str1 string

关于char 指针变量char *=p;这个语句的输出问题

学习指针的时候我一直有个疑惑,请看下面的代码: #include <iostream> using std::cout; void main() { int num=5; int *nPtr=&num; cout<<nPtr;//输出指针的地址.但是会报错<<没有直接输出int *地址的功能 return ; } 但是,将int 改成char 类型就不会报错,可以输出字符串.同样是指针,这次为何没有输出地址(理应输出指针代表的地址,但是<<并没有重载

输入一个字符串,输出该字符串中对称的子字符串的最大长度。

public class LongestSymmtricalLength2 { /* * Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度. * 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4. */ public static void main(String[] args) { String[] strs = { "a","google", "elgoog", "agol

编程题:为了展示文件包含功能,输入一个字符串,输出其长度。

1.c源代码如下: #include<stdio.h> #include"2.c" void main() { char string[20]; scanf("%s",string);         /*整个程序的功能:输入一个字符串,输出其长度*/ printf("There are %d characters.\n",string_len(string)); } 2.c源代码如下: int string_len(char str

用指针对字符串输入/输出

#include<iostream> using namespace std; int main(void) { char *s=new char[80]; cout<<"输入一个字符串: "; cin>>s; getchar(); cout<<"输入的字符串是:"; cout<<s; getchar(); delete []s; s=NULL; } s是一个字符型指针变量,通过new运算符申请一个动态数组

(不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度

#include <stdio.h> /* (不包括\0) 编写一个int string_len(char *s), 返回字符串s的字符长度 */ int string_len(char *s); int main() { //char *name = "itcast"; // 男 \u434\u4343\u434 int size = string_len("tre777"); printf("%d\n", size); retur

c++输出char型变量与字符串的地址

在c里面如果指针是一个基本数值型 int ,foalt ,long等,如果输出里有 cout << ptr << endl; 其中ptr是指针的名,则输出的值是指针的地址, 如果是char * (char指针) 则输出的是char指针的值. 在C++中,熟悉int和char型的变量是最基本不过的了,不过,我想,很多初学者会跟我一样,搞不懂如何输出一个char变量的地址?就举下面一个例子: int i=97; char c='a'; cout<<"line 1:

练习:判断字符串“mingrikejijavabu”中,字符“i”出现了几次,并将结果输出。

1 // 判断字符串“mingrikejijavabu”中,字符“i”出现了几次,并将结果输出. 2 3 String str="mingrikejijavabu"; 4 5 //方法1:替换法 6 String str1=str.replace("i",""); //将字符串中i替换为空,创建新的字符串 7 System.out.println("i出现的次数为:"+(str.length()-str1.length()))

字符串分隔 -&gt;连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; ?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

?连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100) 输出描述: 输出到长度为8的新字符串数组 输入例子: abc 123456789 输出例子: abc00000 12345678 90000000 import java.util.*; public class Main{     public static void main(String[] ar